json - 将带有 Json 数据的字符串传递给 Golang 中的 Map

标签 json go

<分区>

目前我已将 json 对象作为字符串存储在我的数据库中。我想将它们传递给 map ,以便能够查询任何字段:

Mymap["Name"]
Mymap["Age"]
..

假设我的字符串是这样的:

'{"Name":["zero"],"Age":"10"}'

我不知道数据的结构,所以Json可以有很多字段,也可以嵌套很多层(但我更担心至少得到第一层)

最佳答案

如果您正在处理任意结构的 json 对象,您可以使用接口(interface)映射作为将其解码为的类型。

map[string]interface{}

encoding/json 包可以很好地将 json 对象解码到其中,无论嵌套与否。

这虽然非常灵活,但有一个明显的缺点,映射值的类型是未知的,因此要对它们做任何有用的事情,您必须使用类型断言或类型切换。

v, ok := m["key"].(Type)

https://play.golang.org/p/wM0gkU1g5G

关于json - 将带有 Json 数据的字符串传递给 Golang 中的 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47491469/

相关文章:

json - 如何过滤具有多个整数条件和键值的 JSON 对象数组

javascript - Slack API(JSON 数据)

javascript - 使用包含的 json 数据重复附加的 html

postgresql - golang 应用程序如何在 aws 服务器中使用 docker 与 postgres 通信?

mongodb - mongo.Connect() 在使用 mongo-go-driver 的 Go 中无法按预期工作

java - 如何使用freebase api获取一个城市的所有旅游景点?我只能从返回的 JSON 中获取 10

python - 从 JSON 中获取特定数据

go - 提供包 <package_name> 的模块缺少 go.sum 条目

go - sync.Once.Do() 使用 CompareAndSwapInt32

database - PREPARE 语句在几次调用后决定不使用索引,即使它更慢