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

在golang中迭代列表json对象

在golang中迭代列表json对象

Go
PIPIONE 2023-03-21 14:29:47
我有这段代码可以读取 JSON 对象。我需要轻松地遍历“outputs”/data/concepts 键中的所有元素。有更好的方法吗?另外,如何访问值的属性:value.app_id、value.id..etc代码:package mainimport (    "encoding/json"    "fmt")var jsonBytes = []byte(`{"outputs": [{          "data": {"concepts":                                  [{"app_id": "main",                                     "id": "ai_GTvMbVGh",                                     "name": "ancient",                                     "value": 0.99875855}]              }}              ], "status": {"code": 10000, "description": "Ok"}}`)func main() {    var output map[string]interface{}    err := json.Unmarshal([]byte(jsonBytes), &output)    if err != nil {        print(err)    }    for _, value := range output["outputs"].([]interface{}) {        //fmt.Println(value.(map[string]interface{})["data"].(map[string]interface{})["concepts"]).([]interface{})        //fmt.Println(value.(map[string]interface{})["data"].(map[string]interface{})["concepts"])        for _, value := range value.(map[string]interface{})["data"].(map[string]interface{})["concepts"].([]interface{}){            fmt.Println(value)        }    }    //fmt.Printf("%+v\n", output)}
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

最好的方法是将 JSON 解组为结构并迭代值,


func main() {


        var output StructName



err := json.Unmarshal([]byte(jsonBytes), &output)

    if err != nil {

        print(err)

    }

    for _, value := range output.Outputs {

        for _, val := range value.Data.Concepts {

            fmt.Printf("AppId:%s\nID:%s\nname:%s\nvalue:%f", val.AppID, val.ID, val.Name, val.Value)

        }

    }

}


type StructName struct {

    Outputs []struct {

        Data struct {

            Concepts []struct {

                AppID string  `json:"app_id"`

                ID    string  `json:"id"`

                Name  string  `json:"name"`

                Value float64 `json:"value"`

            } `json:"concepts"`

        } `json:"data"`

    } `json:"outputs"`

    Status struct {

        Code        int    `json:"code"`

        Description string `json:"description"`

    } `json:"status"`

}


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信