gpt4 book ai didi

go - 捕获嵌套接口(interface)值

转载 作者:数据小太阳 更新时间:2023-10-29 03:09:36 26 4
gpt4 key购买 nike

我正在尝试获取通过请求获得的 json 的值。

但我没有得到值 foo1,我已经尝试了所有方法但我无法得到该值。

出现无效操作错误。

你能帮帮我吗?

{
"result": {
"foo1": 1751,
"foo2": "2018-12-17T00:00:00-02:00",
}
}

url := "mysite"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

byt := []byte(string(body))

var dat map[string]interface{}

if err := json.Unmarshal(byt, &dat); err != nil {
panic(err)
}

fmt.Println(dat) //map[result:map[foo1:1751 foo2:2018-12-17T00:00:00-02:00]]
fmt.Println(dat["result"]) //map[foo1:1751 foo2:2018-12-17T00:00:00-02:00]]
foo1 := dat["result"]["foo1"] //invalid operation: dat["result"]["foo1"] (type interface {} does not support indexing)
fmt.Println(foo1)

最佳答案

详细说明@zerkms 的评论,您需要将它断言到 map[string]interface{}Go playground link

P.S:在分配之前执行 nil 检查总是一个好主意。

如果存在 := dat["result"];存在!=无{
foo1 := dat["result"].(map[string]interface{})
}

关于go - 捕获嵌套接口(interface)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53842539/

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