1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
您指定的 JSON 具有與結(jié)構(gòu)不同的模型。
有幾種方法可以對齊這些:更改 JSON 數(shù)據(jù)的規(guī)范以匹配您的結(jié)構(gòu),更改結(jié)構(gòu)以匹配 JSON 的規(guī)范,或創(chuàng)建僅用于封送處理的新結(jié)構(gòu)。
我省略了最后一個(gè)示例,因?yàn)樗c第二種方法非常相似。
更改 JSON 的規(guī)范
以下模型保持不變:
type MessageProtocolHandshake struct {
HandshakeType HandshakeType `json:"handshakeType"`
Version []Version `json:"version"`
}
type HandshakeType struct {
HandshakeType string
}
此操作的 JSON 為:
{"handshakeType":{"HandshakeType":""},"version":[]}
您沒有指定類型,因此我不知道如何更改JSON。Version
更改結(jié)構(gòu)
以下 JSON 保持不變:
{"messageProtocolHandshake":[{"handshakeType":"announceMax"},{"version":[{"major":1},{"minor":0}]}]}
其結(jié)構(gòu)是:
type Model struct {
MessageProtocolHandshake []interface{} `json:"messageProtocolHandshake"`
}
type HandshakeType struct {
HandshakeType string `json:"handshakeType"`
}
type Versions struct {
Version []Version `json:"version"`
}
type Version struct {
Major *int `json:"major,omitempty"`
Minor *int `json:"minor,omitempty"`
}
取消婚姻不會是微不足道的。
https://play.golang.org/p/89WUhcMFM0B
從結(jié)果中可以明顯看出,您使用的模型并不好。如果有辦法改變所有這些,我建議從頭開始,使用必要的數(shù)據(jù)并從結(jié)構(gòu)中創(chuàng)建JSON規(guī)范。
我建議閱讀JSON:https://www.json.org/json-en.html
另外,我推薦Go和JSON的介紹:https://blog.golang.org/json
- 1 回答
- 0 關(guān)注
- 147 瀏覽
添加回答
舉報(bào)