我是 GO 新手,我正在解决一个我似乎无法解决的问题:我正在针对目标发出 GET 请求并返回类似于以下的 JSON 响应:{ "data":[ { "def":{ "key":[ { "id":84, "name":"T1" }, { "id":19, "name":"T2" } ] }, "id":2, "Name":"Test 1" }, { "def":{ "key":[ { "id":14, "name":"T3" }, { "id":2, "name":"T4" } ] }, "id":3, "Name":"Test 2" } ]}如何获取resp.Body并以可以开始使用数据的方式保存它?在 Python 中,我可以轻松地执行类似data = resp.json()['data'].我会在定义结构中做这样的事情吗?var output Definitions json.Unmarshal([]byte(resp.Body), &output)
1 回答

胡子哥哥
TA贡献1825条经验 获得超6个赞
尽管不推荐,但您可以将任意 JSON 数据解组为 an interface{},然后将其断言为 a map[string]interface{}:
func main() {
input := []byte(inputJSON)
var f interface{}
_ = json.Unmarshal(input, &f)
JSONmap := f.(map[string]interface{})
fmt.Println(JSONmap["data"])
}
输出:
$ go run main.go
[map[Name:Test 1 def:map[key:[map[id:84 name:T1] map[id:19 name:T2]]] id:2] map[Name:Test 2 def:map[key:[map[id:14 name:T3] map[id:2 name:T4]]] id:3]]
你可以在这里找到一个活生生的例子:https: //play.golang.org/p/vg-9_KgfJXx
- 1 回答
- 0 关注
- 96 浏览
添加回答
举报
0/150
提交
取消