我不想指定我的json的类型,因为它们非常混乱和复杂,我只是想让它们加载到内存中,并在需要时执行查找。
使用python等动态语言很容易,例如
data = json.loads(str)
if "foo" in data:
...
如何在go中做同样的事情?
答案 0 :(得分:1)
您可以解组为interface{}
值来解码任意JSON。
以http://blog.golang.org/json-and-go
为例b := []byte(`{"Name":"Wednesday","Age":6,"Parents":["Gomez","Morticia"]}`)
var f interface{}
if err := json.Unmarshal(b, &f); err != nil {
... handle error
}
您需要使用类型开关来访问以这种方式解码的数据。例如:
age := f.(map[string)interface{})["Age"].(int)
答案 1 :(得分:0)
这是一个让我更容易理解的例子,我希望它对你也有用: https://gobyexample.com/json。寻找“任意”一词