求助:关于beego文档获取request body的内容

在beego文档这一段
在 API 的开发中,我们经常会用到 JSON 或 XML 来作为数据交互的格式,如何在 beego 中获取 Request Body 里的 JSON 或 XML 的数据呢?


在配置文件里设置 copyrequestbody = true
在 Controller 中
func (this *ObjectController) Post() {
var ob models.Object
json.Unmarshal(this.Ctx.Input.RequestBody, &ob)
objectid := models.AddOne(ob)
this.Data["json"] = "{\"ObjectId\":\"" + objectid + "\"}"
this.ServeJSON()
}
初学者 刚好在学习案例中卡在这个问题没法理解 继续学习下去 求帮助 如果实在解释麻烦给下资料也行


谢谢大家拜托了

已邀请:

CurveSoft - 70后Go爱好者

赞同来自:

RequestBody就是HTTP请求里去掉头部以后的Body部分,在现代的RESTFul API客户端调用API的时候,常常把需要提交的数据以json形式放到Body里提交,这个功能就是方便后端获取这部分数据的

yangshuai1228 - 嘿嘿

赞同来自:

感谢帮助 那我往这方面资料看看

yangshuai1228 - 嘿嘿

赞同来自:


func (c *HomeController) Post() {
result := make(map[string]string)
t := new(md.Test)
var (
err error
)
if err = json.Unmarshal(c.Ctx.Input.RequestBody, t); err == nil {
// 获得struct表名
// structName := reflect.Indirect(reflect.ValueOf(company)).Type().Name()

if err = md.AddTest(t); err == nil {
result["code"] = "success"
} else {
result["code"] = "failed"
result["message"] = "数据创建失败"
result["debug"] = err.Error()
}
} else {
result["code"] = "failed"
result["message"] = "请求数据解析失败"
result["debug"] = err.Error()
}
c.Data["json"] = result
c.ServeJSON()
}

type Test struct {
Id int64 `orm:"column(id);pk;auto" json:"id"`
Name string `orm:"unique" json:"Name"`
}

知道了原理 按着代码打 通不过啊.....报错
{
"code": "failed",
"debug": "invalid character 'u' looking for beginning of value",
"message": "请求数据解析失败"
}

llliiinnn - 死肥宅

赞同来自:

json.Unmarshal(c.Ctx.Input.RequestBody, &t)

要回复问题请先登录注册