Beego model 转JSON异常? 160C

Beego model 转JSON异常。
需求 。post 一个json数据 进入数据库的order表,并且返回订单编号 和 订单商品编号,
但在最后一部,输出整个JSON串的时候出现异常了详细代码如下

package models

import (
    "fmt"
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"
    _ "github.com/go-sql-driver/mysql"
)

//定义了 订单商品
type Goods struct {
    Id           int32
    Goods_sn     string
    Goods_price  int
    Goods_weight int
    Goods_amount int
    Order        *Order `orm:"rel(fk)"`
}

//定义了  订单model
type Order struct {
    Id           int32
    Order_sn     string
    Order_amount int
    Goodslist    []*Goods `orm:"reverse(many)"`
}

func init() {
    orm.RegisterDriver("mysql", orm.DRMySQL)
    db_config_url := beego.AppConfig.String("dbconfigurl")
    aliasName := beego.AppConfig.String("dbaliasName")
    orm.RegisterDataBase(aliasName, "mysql", db_config_url)
    orm.Debug = true
    orm.RegisterModel(new(User), new(Post), new(Profile), new(Tag))
    orm.RegisterModel(new(Goods), new(Order))
    orm.RunSyncdb("default", false, true)
}


func (c *Order) Createorder() {
    o := orm.NewOrm()
    o.Using("default")
    o.Insert(c)
    //先录入 订单 信息 返回订单编号   c.Id 随数据库表订单编号自增
    fmt.Println(len(c.Goodslist))
    for i := 0; i < len(c.Goodslist); i++ {
        c.Goodslist[i].Order = c
    }
    //把购买的订单商品录入到订单商品表中
    o.InsertMulti(len(c.Goodslist), c.Goodslist)

}

package controllers

import (
    "SmartFarmers/models"
    "encoding/json"
    "fmt"
    "github.com/astaxie/beego"
)

type OrderController struct {
    beego.Controller
}

func (c *OrderController) CreateOrder() {
    var ob models.Order
    body := c.Ctx.Input.RequestBody
    json.Unmarshal(body, &ob)
    ob.Createorder()
    fmt.Println(ob.Id)  //测试打印出订单自增列
    for i:=0;i<len(ob.Goodslist);i++{
        fmt.Print("订单编号:")
        fmt.Println(ob.Goodslist[i].Order.Id)//打印出 商品表中的订单自增号
    }
    c.Data["json"] = ob//问题出现在这里了 ,
    // 请问大家问题出现在哪里? 这里怎么打都打不出来,不知道为啥!shit
    c.ServeJSON()
}

请问他大家该如何解决!

1个回答

shenboran2005
shenboran2005 这个 对我没用啊我用order对象调用了一个方法之后就不能再作为json的数据输出数据了
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐