下面这种 json 字符串 golang 怎么实现通过 map 和 list 结构输出出来呢?

2023-05-04 17:44:41 +08:00
 gmlaogong
我是 java 项目中需要 go 输出这种接口的 json 字符串,搞了半天不行,麻烦问一下,怎么实现,在 java 中通过对象和 list 就能实现。go 怎么实现呢?目前外层我用的是 map ,personInfo 这里 list ,但是 list 不好使不知道为什么?
这里是我写的结构
data := make(map[string]interface{})
data["sign_type"] = "sign"
data["dev_sno"] = "888088"
data["register_no"] = "888088"
data["type"] = "1"
dataPersonInfo := make(map[string]int)
dataPersonInfo.PushBack(map[string]int{
"person_type": 4,
"total": 10,
})
dataPersonInfo.PushBack(map[string]int{
"person_type": 3,
"total": 5,
})
data["personInfo"] = dataPersonInfo
下面是想要输出的结构
{
"sign_type": "sign",
"dev_sno": "888999",
"register_no": "888999",
"type": "1",
"personInfo": [
{
"person_type": 4,
"total": 10
},
{
"person_type": 3,
"total": 5
}
]
}
939 次点击
所在节点    程序员
4 条回复
FreeEx
2023-05-04 17:52:26 +08:00
把 list 换成 slice 就好了,golang 里面的 list 很少使用。
willchen
2023-05-04 17:54:04 +08:00
data := make(map[string]interface{})

data["sign_type"] = "sign"
data["dev_sno"] = "888088"
data["register_no"] = "888088"
data["type"] = "1"

dataPersonInfo := make([]map[string]int, 0)

dataPersonInfo = append(dataPersonInfo, map[string]int{
"person_type": 4,
"total": 10,
})

dataPersonInfo = append(dataPersonInfo, map[string]int{
"person_type": 3,
"total": 5,
})

data["personInfo"] = dataPersonInfo
sunny352787
2023-05-04 17:58:13 +08:00
https://mholt.github.io/json-to-go/

你可以考虑把 json 贴进去,生成 struct
gmlaogong
2023-05-05 09:22:20 +08:00
@sunny352787 这个我稍后试试,谢谢提供
@willchen 谢谢可以用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/937316

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX