golang json解析出现值为空

    我是通过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},


你可能感兴趣的:(golang,坑,json)