为了账号安全,请及时绑定邮箱和手机立即绑定

将响应数据处理到 Struc

将响应数据处理到 Struc

Go
哈士奇WWW 2022-06-21 16:11:05
我是 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


查看完整回答
反对 回复 2022-06-21
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号