为了账号安全,请及时绑定邮箱和手机立即绑定

将 JSON 解析为结构体

将 JSON 解析为结构体

Go
跃然一笑 2021-10-18 14:10:34
当它们具有常规键值格式时,我已成功将 JSON 解析为结构体。但是,我如何解析这样的 JSON:{  "count": 2,  "results": [{ key: "workspaces", id: "10" }, { key: "workspaces", id: "11" }],  "workspaces": {    "10": {      id: "10",      title: "some project",      participant_ids: ["2", "6"],      primary_counterpart_id: "6"    },    "11": {      id: "11",      title: "another project",      participant_ids: ["2", "8"],      primary_counterpart_id: "8"    }  }}该workspaces部分的键没有提前定义,而是保存工作区 ID?我最初的结构是:type WorkspaceRequest struct {    Count      int64       `json:"count"`    Workspaces []Workspace `json:"workspaces"`}type Workspace struct {    Title string `json:"title"`}如何从显示的 JSON 中获取工作区列表?
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

问题是您Workspaces在模型中表示为数组,但它是 json 中的字典/映射。只要让它成为一个map[sting]Workspace,你应该会很好。第一个项目将与instance.Workspaces["11"]

关于我是如何知道的一些提示;1)工作区用大括号打开{,数组永远不是正确的类型(它们总是包含[]在 json 中),它是一个对象或地图。2) 其中的项目表示为"11": { ... }。这意味着如果我在 Go 中用一个对象来表示它,我需要一个名为1112ect的属性,可以很安全地假设这不是你想要的,这意味着它必须是一个地图。


查看完整回答
反对 回复 2021-10-18
  • 1 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信