我是通过beego框架,将请求过来的json进行解析,并将值保存在结构体中

--------------------1----------------------------------

 request := UpdateCommentRequestData{}
	req := common.Request{Data: request}
	err := json.Unmarshal(controller.Ctx.Input.RequestBody, &req)
---------------------------------------------
其中UpdateCommentRequestData的结构是这样的

type UpdateCommentRequestData struct {
	Id []string `json:"id"`
}
 

common.request的结构是这样的

type Request struct {
	UserId uint64 `json:"userId,string"`
	Data interface{} `json:"data"`
}


我使用1中的代码进行解析,发现request.Id的值是空的,但是传来的json是存在Id值的,当时一头雾水,就不断在日志中打印,后来定位到是数据类型存在问题,

在1中的代码里面,Data字段传的是request的值,是值的拷贝,也就是说,json解析后的数据并不是赋值到reques中,所以使用request.Id并不会取到值,

如果将代码改成这样,再使用request.Id就可以取到值了

req := common.Request{Data: request},


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐