json - 如何在 Go 中解码 json

标签 json dictionary go

我有一个像这样的 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)
}

Go Playgroung

这给了我们一片 map 。如果您想将这些 map 放在另一个 map 中,该 map 的元素应该有一个键(就像它们在 slice 中的索引)。

关于json - 如何在 Go 中解码 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45320313/

相关文章:

php - 如何在 codeigniter 中将值内爆并插入到数据库中?

json - 比较 MariaDB 中的 JSON 值

java - 使用 JSON 的 Volley Post - 获取 422 状态代码

python - simplejson.dumps(dict) 抛出 "not JSON serializable"

swift - 如何初始化字典中的数组?

json - golang appengine 输出 json

javascript - 使用 getJSON 中的数据填充工具提示

c++ - 使用智能指针或引用包装器定义自定义 map

string - 如何使用时间包将时间格式化为 “2nd Jan 2006”时间格式的字符串

http - 如何将多个处理程序分配给同一个 uri?