我正在努力從以下代碼中獲得正確的輸出:package mainimport ( "encoding/json" "fmt")func main() { var jsonBlob3 = []byte(`[ {"name": "Platypus", "spec": "Monotremata", "id":25 }, {"name": "Quoll", "spec": "Dasyuromorphia", "id":25 } ]`) type Animal2 struct { name string spec string id uint32 } var animals []Animal2 err := json.Unmarshal(jsonBlob3, &animals) if err != nil { fmt.Println("error:", err) } fmt.Printf("%+v\n", animals)}操場(chǎng)片段打印時(shí)結(jié)構(gòu)字段為空。我確信某處有一個(gè)愚蠢的錯(cuò)誤,但我仍然是 Go 的新手,我已經(jīng)被困在這個(gè)問(wèn)題上好幾個(gè)小時(shí)了。請(qǐng)幫忙。
1 回答

尚方寶劍之說(shuō)
TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
這已經(jīng)出現(xiàn)很多次了。問(wèn)題是只能對(duì)導(dǎo)出的字段進(jìn)行編組/解組。
通過(guò)以大寫(xiě)(大寫(xiě))字母開(kāi)頭來(lái)導(dǎo)出結(jié)構(gòu)字段。
type Animal2 struct {
Name string
Spec string
Id uint32
}
在Go Playground上試一試。
請(qǐng)注意,JSON 文本包含帶有小寫(xiě)文本的字段名稱(chēng),但該json包足夠“聰明”以匹配它們。如果它們完全不同,您可以使用 struct 標(biāo)簽來(lái)告訴json包如何在 JSON 文本中找到它們(或它們應(yīng)該如何編組),例如:
type Animal2 struct {
Name string `json:"json_name"`
Spec string `json:"specification"`
Id uint32 `json:"some_custom_id"`
}
- 1 回答
- 0 關(guān)注
- 187 瀏覽
添加回答
舉報(bào)
0/150
提交
取消