为了账号安全,请及时绑定邮箱和手机立即绑定

在 go 中,什么是 json.Unmarshall 最大深度?

在 go 中,什么是 json.Unmarshall 最大深度?

Go
茅侃侃 2022-01-10 10:39:25
我正在尝试解析如下所示的 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在领域SenderRecipient,而在JSON他们都是整数。这应该是缺少字段的罪魁祸首。


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信