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

如何从 Go 中的 json 字符串中获取键值

如何从 Go 中的 json 字符串中获取键值

Go
九州编程 2021-06-04 18:45:23
我想尝试在 Go 中从 JSON 获取键值,但是我不确定如何。我已经能够使用 simplejson 读取 json 值,但是我无法找到如何获取键值。有人能指出我正确的方向和/或帮助我吗?
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

您可以通过执行以下操作来获取 JSON 结构的顶级键:


package main


import (

    "encoding/json"

    "fmt"

)


// your JSON structure as a byte slice

var j = []byte(`{"foo":1,"bar":2,"baz":[3,4]}`)


func main() {


    // a map container to decode the JSON structure into

    c := make(map[string]json.RawMessage)


    // unmarschal JSON

    e := json.Unmarshal(j, &c)


    // panic on error

    if e != nil {

        panic(e)

    }


    // a string slice to hold the keys

    k := make([]string, len(c))


    // iteration counter

    i := 0


    // copy c's keys into k

    for s, _ := range c {

        k[i] = s

        i++

    }


    // output result to STDOUT

    fmt.Printf("%#v\n", k)


}

请注意,键的顺序不能与它们在 JSON 结构中的顺序相对应。它们在最终切片中的顺序甚至在完全相同代码的不同运行之间也会有所不同。这是因为地图迭代的工作方式。


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

添加回答

举报

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