我從 API 獲取如下 JSON:{ "unknownkey" : { "sum" : 7030.76636, "low" : 6787.05692, "avg" : 0.00014 }}第一個鍵是未知的 - 它會改變,但內部結構始終保留相同的鍵。根據這里的討論,我創建了這些structs:type Order struct { Result Result `json:"-"`}type Result struct { Sum float64 `json:"sum"` Low float64 `json:"low"` Avg float64 `json:"avg"`}我嘗試像這樣解組它:var order Orderjson.Unmarshal([]byte(body), &order)但我只是得到一個空結構:{Result:{Sum:0 Low:0 Avg:0}}
1 回答

慕絲7291255
TA貢獻1859條經驗 獲得超6個贊
Result您可以使用值類型為或 的映射*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對象,請在地圖上范圍:
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上的示例。
- 1 回答
- 0 關注
- 169 瀏覽
添加回答
舉報
0/150
提交
取消