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

我想尝试在 Go 中从 JSON 获取键值,但是我不确定如何。

我已经能够使用 simplejson 读取 json 值,但是我无法找到如何获取键值。

有人能指出我正确的方向和/或帮助我吗?


九州编程
浏览 522回答 3
3回答

慕容森

您可以通过执行以下操作来获取 JSON 结构的顶级键:package mainimport (    "encoding/json"    "fmt")// your JSON structure as a byte slicevar 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 结构中的顺序相对应。它们在最终切片中的顺序甚至在完全相同代码的不同运行之间也会有所不同。这是因为地图迭代的工作方式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go