gpt4 book ai didi

json - 将 JSON 数组解码为 JSON 对象

转载 作者:行者123 更新时间:2023-12-01 22:35:17 25 4
gpt4 key购买 nike

我正在尝试使用返回 JSON 数据的 API。嵌套在 JSON 中的是一个对象数组。数据是结构化的,我试图将该数组转换为一个对象,但我空手而归。

换句话说,我有这个:

{
"summary": {
"distances": [
{
"activity": "total",
"distance": 2.83
},
{
"activity": "tracked",
"distance": 2.83
},
{ ... },
{ ... },
{ ... },
{ ... },
{ ... }
]
}
}

我想要这样的东西:
  "summary": {
"distances": {
"total": 2.83,
"tracked": 2.83,
...
]
}
}

我已经编写了解码 JSON 的代码,但它仅在结构的格式与 JSON 相同时才有效: https://play.golang.org/p/jsu_Ym8kRQd

最佳答案

您无法使用标准库 JSON 包做您想做的事。我不知道有任何第三方 JSON 解码器可以做到这一点。您必须将 JSON 解码为与您的输入匹配的中间结构,然后将其转换为您需要的结构。如果 distances 的结构对于所有元素都是相同的,如果您尝试将该输入 JSON 转换为您想要的输出 JSON,您可以使用简单的结构来执行此操作,如下所示:

type Result struct {
Distances map[string]float64
}

func process(input []byte) Result {
var data InputStruct
json.Unmarshal(input,&data)
dest:=Result{Distances:make(map[string]float64)}
for _,dist:=range data.Distances {
dest.Distances[dist.Activity]=dist.Distance
}
return dest
}

关于json - 将 JSON 数组解码为 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58585360/

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