我有一个像这样的 json
[{"name":"Name1","age":20},{"name":"Name2","age":29}]
我想把它解码成这样的 map
map [ map ["姓名":"姓名1"....] , map ["姓名":"姓名2",....]]
在我的例子中,我的逻辑是这样的
bt:= []byte(metadatas[0])
var dat interface{}
if err := json.Unmarshal(bt, dat); err != nil {
panic(err)
}
fmt.Println(dat)
作为回应我得到了
[map["name":"Name1" ....] ,map["name":"Name2",....]]
我怎样才能得到一张 map 而不是
最佳答案
用于解码的目标数据结构可以定义为 val := []map[string]interface{}{}
:
package main
import (
"encoding/json"
"fmt"
)
func main() {
input := []byte(`[{"name":"Name1","age":20},{"name":"Name2","age":29}]`)
val := []map[string]interface{}{}
if err := json.Unmarshal(input, &val); err != nil {
panic(err)
}
fmt.Printf("%v\n", val)
}
这给了我们一片 map 。如果您想将这些 map 放在另一个 map 中,该 map 的元素应该有一个键(就像它们在 slice 中的索引)。
关于json - 如何在 Go 中解码 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45320313/