zoukankan      html  css  js  c++  java
  • 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 
    ")
        fmt.Println(obs)
        fmt.Println("End   AAAAAAAAAAAAAA 
    ")
    
        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 := 0; 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)
        }
    }
  • 相关阅读:
    Linux应急响应(三):挖矿病毒
    Linux应急响应(二):捕捉短连接
    Linux应急响应(一):SSH暴力破解
    Window应急响应(四):挖矿病毒
    Window应急响应(三):勒索病毒
    Window应急响应(二):蠕虫病毒
    openresty开发系列10--openresty的简单介绍及安装
    openresty开发系列4--nginx的配置文件说明
    openresty开发系列3--nginx的平滑升级
    openresty开发系列2--nginx的简单安装,正向、反向代理及常用命令和信号控制介绍
  • 原文地址:https://www.cnblogs.com/liufei1983/p/10804275.html
Copyright © 2011-2022 走看看