gpt4 book ai didi

json - 将字符串映射到json对象的多种类型?

转载 作者:IT老高 更新时间:2023-10-28 13:04:07 26 4
gpt4 key购买 nike

我想创建一个可以转换为json对象的 map ,例如

{
"a": "apple",
"b": 2
}

但是 golang 指定映射是用类型声明的,所以我可以有 map[string]string 或 map[string]int。如何创建像上面这样的 json 对象?

注意:直到运行时或需要创建 json 对象时,我才知道需要什么数据和/或类型。因此我不能只创建一个像

这样的对象
type Foo struct {
A string `json:"a"`
B int `json:"b"`
}

最佳答案

您始终可以使用 interface{} 来存储任何类型。正如 encoding/json 包中的文档所说:

To unmarshal JSON into an interface value, Unmarshal unmarshals the JSON into the concrete value contained in the interface value. If the interface value is nil, that is, has no concrete value stored in it, Unmarshal stores one of these in the interface value:

bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays
map[string]interface{}, for JSON objects
nil for JSON null

只需执行以下操作:

m := map[string]interface{}{"a":"apple", "b":2}

关于json - 将字符串映射到json对象的多种类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18526046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com