golang web框架 beego 学习 (七)json转数组
Modules
type User struct {
Id int64 `json:"id"`
Name string `json:"name"`
Email string `json:"email"`
Age int64 `json:"age"`
}
controller
func (this *UserController) AddUsers() {
var obs []md.User // 接收数组
body := this.Ctx.Input.RequestBody //这是获取到的json二进制数据
fmt.Println(body)
json.Unmarshal(body, &obs) //解析二进制json,把结果放进ob中
// user := &md.User{Id: ob.UserName, Mobile: ob.Mobile}
fmt.Println(obs)
md.CreateUsers(&obs) //这是添加用户函数
// if nil != err {
// this.Data["json"] = map[string]interface{}{"result": false, "msg": err}
// } else {
// this.Data["json"] = map[string]interface{}{"result": true, "msg": "新增成功"}
// }
// this.Data["json"] = map[string]interface{}{"result": false, "msg": err}
this.Data["json"] = obs
this.ServeJSON()
}
ORM
func CreateUsers(users *[]User) {
o := orm.NewOrm()
if successNums, err := o.InsertMulti(len(*users), *users); err != nil {
fmt.Println("insert fail.....")
} else {
fmt.Println("success inserted %d datas", successNums)
}
}
另外还有一种传递数组的方式,而且应用更广泛:
Controller:
func (this *UserController) AddUsers() {
var obs []md.User
body := this.Ctx.Input.RequestBody //这是获取到的json二进制数据
fmt.Println(body)
json.Unmarshal(body, &obs) //解析二进制json,把结果放进ob中
// user := &md.User{Id: ob.UserName, Mobile: ob.Mobile}
fmt.Println("Begin AAAAAAAAAAAAAA \n")
fmt.Println(obs)
fmt.Println("End AAAAAAAAAAAAAA \n")
md.CreateUsers(obs[:]) //这是添加用户函数
// if nil != err {
// this.Data["json"] = map[string]interface{}{"result": false, "msg": err}
// } else {
// this.Data["json"] = map[string]interface{}{"result": true, "msg": "新增成功"}
// }
// this.Data["json"] = map[string]interface{}{"result": false, "msg": err}
this.Data["json"] = obs
this.ServeJSON()
}
ORM:
func CreateUsers(users []User) {
for i := ; i < len(users); i++ {
fmt.Println(users[i])
}
o := orm.NewOrm()
if successNums, err := o.InsertMulti(len(users), users); err != nil {
fmt.Println("insert fail.....")
} else {
fmt.Println("success inserted %d datas", successNums)
}
}
golang web框架 beego 学习 (七)json转数组的更多相关文章
- golang web框架 beego 学习 (一) 环境搭建
下面的命令我都是在$GOPATH的路径下执行的: 1. 首先下载beego框架: go get github.com/astaxie/beego (注意:运行上面命令时没有反应,需要在etc/host ...
- golang web框架 beego 学习 (三) beego获取参数
直接上常用的例子吧: A: 获取URL中的参数 router func init() { beego.Router("/task/?:id/?:name", &co ...
- golang web框架 beego 学习 (六) request body和module的映射
router.go package routers import ( "gowebProject/controllers" "github.com/astaxie/bee ...
- golang web框架 beego 学习 (四) 连接mysql
1 DB参数配置在app.conf appname = gowebProject httpport = runmode = dev [db] host= localhost port= databas ...
- golang web框架 beego 学习 (二) router and controller
1 Router和Controller的常用配置 beego.Router("/user/admin", &controllers.UserController{}) // ...
- golang web框架 beego 学习 (五) 配置文件
app.conf: appname = gowebProject httpport = runmode = dev copyrequestbody = true [db] host= localhos ...
- golang web框架 beego
尝试了下,在go环境ready的情况下,花了2分钟完成了beego安装.项目生成和启动,效率还是不错的 1.安装: go get github.com/astaxie/beego go get git ...
- Go语言及Web框架Beego环境无脑搭建
[原]Go语言及Web框架Beego环境无脑搭建 本文涉及软件均以截至到2013年10月12日的最新版本为准 1. 相关软件准备: 1) go1.2rc1.windows-386.msi,对应32位w ...
- golang web框架设计7:整合框架
把前面写好的路由器,控制器,日志,都整合在一起 全局变量和初始化 定义一些框架的全局变量 var ( BeeApp *App AppName string AppPath string StaticD ...
随机推荐
- spark操作hive方式(scala)
第一种方式: def operatorHive: Unit = { Class.forName("org.apache.hive.jdbc.HiveDriver") val url ...
- hive优化,开启压缩功能
1.开启hive作业mapreduce任务中间压缩功能: 对于数据进行压缩可以减少job中map和reduce task间的数据传输量.对于中间数据压缩,选择一个低cpu开销编/解码器要不选择一个压缩 ...
- PostgreSQL 数据目录结构
根目录介绍 data ├── base # use to store database file(SELECT oid, datname FROM pg_database;) ├── global # ...
- learning scala Case Classses
package com.aura.scala.day01 object caseClasses { def main(args: Array[String]): Unit = { // 注意在实例化案 ...
- Cogs 1714. [POJ1741][男人八题]树上的点对(点分治)
[POJ1741][男人八题]树上的点对 ★★★ 输入文件:poj1741_tree.in 输出文件:poj1741_tree.out 简单对比 时间限制:1 s 内存限制:256 MB [题目描述] ...
- 7、transformation和action2
一.transformation开发实战 1.map: 将集合中每个元素乘以2 使用map算子,将集合中的每个元素都乘以2 map算子,是对任何类型的RDD,都可以调用的,在Java中,map算子接收 ...
- PHP全栈学习笔记31
伪类:未被访问状态,已被访问状态,鼠标悬停状态,活动状态 :link 未被访问的链接添加样式 :visited 向已被访问链接添加样式 :hover 向鼠标悬停时向元素添加样式 :active 向被激 ...
- Linux下 为什么有时候使用sudo也提示没有权限
例如: #sudo echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 bash: /proc/sys/net/ipv6/conf/all/dis ...
- 如何利用shell或者awk二维数组实现9x9乘法表?
第一种:利用shell for循环来实现. for i in `seq 1 9`do for j in `seq 1 9` do if [ $i -ge $j ] then echo -en &quo ...
- java四种对象引用类型
java四种对象引用类型 对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序 ...