我正在尝试解析如下所示的 JSON 响应:{ "object": "page", "entry": [ { "id": 185985174761277, "time": 1462333588680, "messaging": [ { "sender": { "id": 1053704801343033 }, "recipient": { "id": 185985174761277 }, "timestamp": 1462333588645, "message": { "mid": "mid.1462333588639:d44f4374dfc510c351", "seq": 1948, "text": "Hello World!" } } ] } ]}我正在使用json.Unmarshal并传递以下结构作为接口:type Message struct { Object string Entry []struct { Id int64 Time int64 Messaging []struct { Sender struct { Id string } Recipient struct { Id string } Timestamp int64 Message struct { Mid string Seq string Text string } } }}但是,json.Unmarshal与 JSON 响应中的任何结构都不匹配Messaging这个函数准确地重现了这个问题:type Message struct { Object string Entry []struct { Id int64 Time int64 Messaging []struct { Sender struct { Id string } Recipient struct { Id string } Timestamp int64 Message struct { Mid string Seq string Text string } } }} 这是输出:{Object:page Entry:[{Id:185985174761277 Time:1462333588680 Messaging:[{Sender:{Id:} Recipient:{Id:} Timestamp:0 Message:{Mid: Seq: Text:}}]}]}正如你所看到的,Message 结构中的所有字段都没有设置。我的问题是,json.Unmarshal 可以匹配的最大深度吗?如果没有,我做错了什么?
1 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
我认为 json.Unmarshal 没有最大深度。
在你的代码,Seq
在外地Message
字段定义为字符串,所以是Id
在领域Sender
和Recipient
,而在JSON他们都是整数。这应该是缺少字段的罪魁祸首。
- 1 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消