我上网的每个示例都显示了为数据构建结构的示例,然后将JSON解组为数据类型。问题是,我得到的是JSON的大量转储,并且使用这种方法似乎是一种艰难的工作....
有没有办法获取大量的数据转储并将其解放到类似于json / maps类似的对象的地图中?
我现在所拥有的就是这样......
var data map[interface{}]interface{}
err = json.Unmarshal(JSONDUMP, &data)
if err != nil { log.Fatal(err) }
但我不能这样称呼它
data["some"]["long"]["chain"]["of"]["lookups"]
(type interface {} does not support indexing)
答案 0 :(得分:4)
一般来说,这是一个糟糕的想法!但如果你真的需要,你可以这样做:
package main
import (
"encoding/json"
"fmt"
)
func main() {
var anyJson map[string]interface{}
customJSON := []byte(`{"a": "text comes here", "b": {"c":10, "d": "more text"}}`)
json.Unmarshal(customJSON, &anyJson)
fmt.Println("a ==", anyJson["a"].(string))
b_temp := anyJson["b"].(map[string]interface{})
fmt.Println("c ==", b_temp["c"].(float64))
}
..那么你可以使用像anyJson["a"].(string)
这样的任何字段 - 看一下类型断言,有效是至关重要的
答案 1 :(得分:3)