gpt4 book ai didi

json - 如何解析/反序列化动态 JSON

转载 作者:数据小太阳 更新时间:2023-10-29 03:20:22 25 4
gpt4 key购买 nike

场景:
考虑以下是 JSON:

{
"Bangalore_City": "35_Temperature",
"NewYork_City": "31_Temperature",
"Copenhagen_City": "29_Temperature"
}

如果您注意到,数据的结构方式没有提到 City/Temperature 的硬编码键,它基本上只是值。

问题:我无法解析任何动态的 JSON。

问题:有人能找到解决这种 JSON 解析的方法吗?我试过 go-simplejson , gabs & 默认 encoding/json但没有运气。

注意:以上 JSON 仅供示例。而且有很多应用程序正在使用当前的 API,所以我不想更改数据的结构。我的意思是我无法更改为如下内容:

[{
"City_Name":"Bangalore",
"Temperature": "35"
},...]

然后我可以定义struct

type TempData struct {
City_Name string
Temperature string
}

最佳答案

例如,您可以解码为 map[string]string:

m := map[string]string{}
err := json.Unmarshal([]byte(input), &m)
if err != nil {
panic(err)
}
fmt.Println(m)

输出(包装):

map[Bangalore_City:35_Temperature NewYork_City:31_Temperature
Copenhagen_City:29_Temperature]

Go Playground 上试试.

这样,无论键或值是什么,您都可以在 map 中拥有所有对,您可以打印或循环。

另请注意,虽然您的示例仅包含 string 值,但如果值类型不同(例如 string、数字等),您可以使用 interface{} 作为值类型,在这种情况下,您的 map 将属于 map[string]interface{} 类型。

另请注意,我创建了一个库来轻松处理此类动态对象,这在这些情况下可能会有很大帮助:github.com/icza/dyno .

关于json - 如何解析/反序列化动态 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54946107/

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