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()
}
请问他大家该如何解决!