gpt4 book ai didi

json - 具有未知键的 Unmarshall JSON 上的空结构

转载 作者:行者123 更新时间:2023-12-01 22:31:51 26 4
gpt4 key购买 nike

我从 API 获取如下 JSON:

{
"unknownkey" : {
"sum" : 7030.76636,
"low" : 6787.05692,
"avg" : 0.00014
}
}

第一个键是未知的——它会改变,但里面的结构总是持有相同的键。
跟随讨论 here我创建了这些 structs :
type Order struct {
Result Result `json:"-"`
}

type Result struct {
Sum float64 `json:"sum"`
Low float64 `json:"low"`
Avg float64 `json:"avg"`
}

我试图像这样解码它:
var order Order
json.Unmarshal([]byte(body), &order)

但我只是得到一个空结构:
{Result:{Sum:0 Low:0 Avg:0}}

最佳答案

您可以使用值类型为 Result 的 map 或 *Result :

var wrapper map[string]Result

if err := json.Unmarshal([]byte(body), &wrapper); err != nil {
panic(err)
}

fmt.Printf("%+v\n", wrapper)

这将导致:
map[unknownkey:{Sum:7030.76636 Low:6787.05692 Avg:0.00014}]

如果您需要 Result对象, map 范围:
for key, result := range wrapper {
fmt.Printf("Key: %q, Result: %+v", key, result)
}

这输出:
Key: "unknownkey", Result: {Sum:7030.76636 Low:6787.05692 Avg:0.00014}

尝试 Go Playground 上的示例.

关于json - 具有未知键的 Unmarshall JSON 上的空结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59105230/

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