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)
        }
    }
  • 相关阅读:
    luoguP5024 保卫王国 动态dp
    luoguP4571 [JSOI2009]瓶子和燃料 裴蜀定理
    luoguP3235 [HNOI2014]江南乐 数论分块 + 博弈论
    luoguP4101 [HEOI2014]人人尽说江南好 结论
    hdu 3032 NIm or not Nim? Multi SG
    luoguP4279 [SHOI2008]小约翰的游戏 Anti-SG 博弈论
    luoguP3480 [POI2009]KAM-Pebbles 阶梯Nim
    Educational Codeforces Round 65 (Div. 2)
    [PKUSC2018]主斗地(搜索+贪心)
    Codeforces Round #557 (Div. 1)
  • 原文地址:https://www.cnblogs.com/liufei1983/p/10804275.html
Copyright © 2011-2022 走看看