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

我想尝试从Go中的JSON获取键值,但是我不确定该怎么做。

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

谁能指出正确的方向和/或帮助我?

谢谢!

回答:

您可以通过执行以下操作来获取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结构中的键顺序相对应。它们在最后一片中的顺序甚至会在完全相同的代码的不同运行之间有所不同。这是由于地图迭代的工作原理。

以上是 如何在Go中从json字符串获取键值 的全部内容, 来源链接: utcz.com/qa/430854.html

回到顶部