2 回答
TA贡献1784条经验 获得超8个赞
首先,这是您的 JSON 的 JSON 有效副本:
{
"Details": {
"Id": "123"
},
"Event": {
"Event": "Event"
},
"RequestValues": [
{
"RequestValueName": "Name1",
"RequestValue": "Val1"
},
{
"RequestValueName": "Name2",
"RequestValue": 2
},
{
"RequestValueName": "Foo",
"RequestValue": true
}
]
}
首先创建一个type Input struct{}来描述您要解析type Output struct{}的 JSON,并为您要生成的 JSON 创建一个,然后编写一些代码以从一个转换为另一个。您不必立即添加所有字段 - 您可以从Event示例开始,然后添加更多字段,直到全部完成。
我已经在https://play.golang.org/p/PvpKnFMrJjN中向您展示了这一点,但我建议您先快速阅读一下,然后再尝试自己重新创建它。
将 JSON 转换为 Go 结构的有用工具是https://mholt.github.io/json-to-go/,但它会RequestValue在您的示例中出现,该示例具有多种数据类型(因此是我们使用的地方interface{})。
TA贡献1815条经验 获得超6个赞
我认为您可以像这样使用地图:
package main
import (
"fmt"
)
type Event struct {
event string
values map[string]string
}
func main() {
eventVar := Event{event: "event", values: map[string]string{}}
eventVar.values["Id"] = "12345"
eventVar.values["vale1"] = "value"
fmt.Println(eventVar)
}
您只需要以某种方式验证它在其中的 id,如果您需要同一级别的值。
我希望这对你有用。
- 2 回答
- 0 关注
- 395 浏览
添加回答
举报