当它们具有常规键值格式时,我已成功将 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 中用一个对象来表示它,我需要一个名为11
, 12
ect的属性,可以很安全地假设这不是你想要的,这意味着它必须是一个地图。
- 1 回答
- 0 关注
- 205 浏览
添加回答
举报
0/150
提交
取消