gpt4 book ai didi

json - 为什么结构字段显示为空?

转载 作者:IT王子 更新时间:2023-10-29 00:56:06 25 4
gpt4 key购买 nike

我正在努力从以下代码中获得正确的输出:

package main

import (
"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)
}

Playground snippet

打印时结构字段为空。我确定某处存在一个愚蠢的错误,但我对 Go 还是个新手,而且我已经坚持了几个小时。请帮忙。

最佳答案

这个已经出现过很多次了。问题是只有导出的字段可以编码/解码。

通过以大写(大写)字母开头来导出结构字段。

type Animal2 struct {
Name string
Spec string
Id uint32
}

Go Playground 上试试.

请注意,JSON 文本包含带有小写文本的字段名称,但 json 包“聪明”到足以匹配它们。如果它们完全不同,您可以使用结构标签告诉 json 包如何在 JSON 文本中找到它们(或者它们应该如何编码),例如:

type Animal2 struct {
Name string `json:"json_name"`
Spec string `json:"specification"`
Id uint32 `json:"some_custom_id"`
}

关于json - 为什么结构字段显示为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32674913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com