登录
首页 >  Golang >  Go问答

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

来源:Golang技术栈

时间:2023-03-22 12:42:54 124浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《将字符串映射到json对象的多种类型?》,就坚持看下去吧!文中内容包含golang等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

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

{
   "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包中的文档所说:

为了将 JSON 解组为接口值,Unmarshal 将 JSON 解组为接口值中包含的具体值。如果接口值为 nil,即其中没有存储具体值,则 Unmarshal 将其中之一存储在接口值中:

bool,对于 JSON 布尔值
float64,对于 JSON 数字
字符串,对于 JSON 字符串
[]interface{},对于 JSON 数组
map[string]interface{},对于 JSON 对象
nil 对于 JSON null

只需执行以下操作:

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

以上就是《将字符串映射到json对象的多种类型?》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表