V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gmlaogong
V2EX  ›  程序员

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

  •  
  •   gmlaogong · 2023-05-04 17:44:41 +08:00 · 901 次点击
    这是一个创建于 573 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我是 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
    }
    ]
    }
    FreeEx
        1
    FreeEx  
       2023-05-04 17:52:26 +08:00
    把 list 换成 slice 就好了,golang 里面的 list 很少使用。
    willchen
        2
    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
        3
    sunny352787  
       2023-05-04 17:58:13 +08:00
    https://mholt.github.io/json-to-go/

    你可以考虑把 json 贴进去,生成 struct
    gmlaogong
        4
    gmlaogong  
    OP
       2023-05-05 09:22:20 +08:00
    @sunny352787 这个我稍后试试,谢谢提供
    @willchen 谢谢可以用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1204 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:14 · PVG 07:14 · LAX 15:14 · JFK 18:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.