gpt4 book ai didi

json - 在 Golang 中使用嵌套 JSON 结构的最佳方式是什么?

转载 作者:IT王子 更新时间:2023-10-29 01:19:56 24 4
gpt4 key购买 nike

我喜欢在 Golang 中使用 JSON,尤其是 Elasticsearch JSON 协议(protocol)。

JSON 是深度嵌套的(这是一个简单的查询):

{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"and": [
{
"range" : {
"b" : {
"from" : 4,
"to" : "8"
}
},
},
{
"term": {
"a": "john"
}
}
]
}
}
}
}

这种结构很容易映射到 Ruby 中的原生数据结构。

但是对于 Golang,您似乎必须使用结构定义确切的结构(也许从 JSON 源以编程方式生成它们)。

即便如此,像 JS 中不同“类型”对象的数组之类的东西仍然需要变通方法和自定义代码。例如示例 JSON 中的“and”键。 (http://mattyjwilliams.blogspot.co.uk/2013/01/using-go-to-unmarshal-json-lists-with.html)。

有没有更好的方法在 Golang 中使用 JSON?

最佳答案

如果您选择走结构路线,请考虑以下示例:

{"data": {"children": [
{"data": {
"title": "The Go homepage",
"url": "http://golang.org/"
}},
...
]}}

// -----------

type Item struct {
Title string
URL string
}

type Response struct {
Data struct {
Children []struct {
Data Item
}
}
}

来源:http://talks.golang.org/2012/10things.slide#4

关于json - 在 Golang 中使用嵌套 JSON 结构的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31797892/

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