我找不到像我一样的问题。
我有以下JSON:
{
result: "true",
data: [
{
randomName: {
val: 2,
secval: 0.142412,
thirdval: 0.5235325,
},
secRandomName: {
val: 8,
secval: 0.152512,
thirdval: 0.6574,
},
thiRandomName: {
val: 6,
secval: 0.4121,
thirdval: 0.2123
},
}
]
}`
如何在golang中创建可与JSON示例一起使用的类型,我已经尝试过类似的事情:
type TheData struct {
Result string `json:"result"`
Data map[string]DataInfo `json:"data"`
}
type DataInfo struct {
Value int `json:"val"`
SecondValue float32 `json:"secval"`
ThirdValue float32 `json:"thirdval"`
}
但这是错误的。
P.S。对不起,我的英语,希望您能理解。谢谢。
答案 0 :(得分:1)
那真的代表您的数据吗?这不是有效的JSON。请参见json.org上的描述。特别是,您需要在字符串前后加上引号,并且在对象或数组的最后一个成员之后不应出现逗号。奇怪的是"true"
是一个字符串而不是布尔值。既然这显然不是数据的复制/粘贴,那么您确定正确使用了方括号和花括号吗?这些对于答案很重要。
假设您确实做对了...从这些行:
data: [
{
randomName: {
我们可以说data
是一个对象数组。如果您要使用方括号,则表示该数组未在数据模型中表示是一个错误。更改数据模型以包括一个切片以捕获JSON数组:
type TheData struct {
Result string `json:"result"`
Data []map[string]DataInfo `json:"data"`
}