将 JSON 解析为结构
Posted
技术标签:
【中文标题】将 JSON 解析为结构【英文标题】:Parsing JSON into a struct 【发布时间】:2015-06-23 22:54:35 【问题描述】:当 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】:问题是您将Workspaces
表示为模型中的数组,但它是json 中的字典/映射。只需将其设为map[sting]Workspace
即可。第一项将使用instance.Workspaces["11"]
关于我是如何知道这一点的一些提示; 1) 工作区是用大括号 打开的,数组永远不是正确的类型(它们总是在 json 中被
[]
包围),它是一个对象或地图。 2)其中的项目表示为"11": ...
。这意味着如果我在 Go 中用一个对象来表示它,我需要一个名为 11
、12
等的属性,可以假设这不是你想要的,这意味着它必须是一个地图。
【讨论】:
非常感谢。当你回答时,它变得很明显。但几乎所有的难题都是如此:)以上是关于将 JSON 解析为结构的主要内容,如果未能解决你的问题,请参考以下文章
kafka 到 pyspark 结构化流,将 json 解析为数据帧
Go 语言入门很简单 -- Go 语言解析JSON #私藏项目实操分享#
在 Scala / Spark 中将 JSON 结构解析为 JSON 对象