gpt4 book ai didi

json - 如何访问json解码的接口(interface)字段?

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

我有一个 json 文档,我正在使用一个客户端来解码接口(interface)(而不是结构)中的文档,如下所示:

var jsonR interface{}
err = json.Unmarshal(res, &jsonR)

如何访问界面字段?我已经阅读了 go 文档和 blog但我的头还是不明白。他们的例子似乎只表明你可以在接口(interface)中解码 json,但没有解释如何使用它的字段。

我尝试过使用范围循环,但当我到达 map[string] 接口(interface)时,故事似乎就结束了。我需要的字段似乎在界面中。

for k, v := range jsonR {
if k == "topfield" {
fmt.Printf("k is %v, v is %v", k, v)

}

}

最佳答案

接口(interface)内的值取决于您正在解析的 json 结构。如果您有一个 json 字典,jsonR 的动态类型将为:map[string]interface{}

这是一个例子。

package main

import (
"encoding/json"
"fmt"
"log"
)

func main() {
a := []byte(`{"topfield": 123}`)
var v interface{}
if err := json.Unmarshal(a, &v); err != nil {
log.Fatalf("unmarshal failed: %s", err)
}
fmt.Printf("value is %v", v.(map[string]interface{})["topfield"])
}

关于json - 如何访问json解码的接口(interface)字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23577193/

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