当前位置: 首页 > 面试题库 >

如何解析嵌套JSON对象中的内部字段

姚实
2023-03-14
问题内容

我有一个与此对象相似的JSON对象:

{
  "name": "Cain",
  "parents": {
    "mother" : "Eve",
    "father" : "Adam"
  }
}

现在,我想将“ name”和“ mother”解析为该结构:

struct {
  Name String
  Mother String `json:"???"`
}

我想用json:...struct标签指定JSON字段名称,但是我不知道该用什么作为标签,因为它不是我感兴趣的顶级对象。我在encoding/json软件包文档中也没有找到关于此的任何内容博客文章JSON和Go。我还测试motherparents/motherparents.mother


问题答案:

遗憾的是,与包不同encoding/xml,该json包没有提供访问嵌套值的方法。您需要创建一个单独的Parents结构或将类型分配为map[string]string。例如:

type Person struct {
    Name string
    Parents map[string]string
}

然后,您可以为母亲提供吸气剂:

func (p *Person) Mother() string {
    return p.Parents["mother"]
}

这可能会或可能不会影响您当前的代码库,并且如果Mother菜单上未包含将字段重构为方法调用的内容,那么您可能想创建一个单独的方法来解码并符合当前结构。



 类似资料:
  • 问题内容: 我们的团队决定使用Retrofit 2.0, 并且我正在对该库进行一些初步研究。如标题中所述,我想通过Android应用中的Retrofit 2.0解析一些嵌套的JSON对象。 例如,这是一个嵌套的JSON对象,其格式为: 我对数组内的JSON对象感兴趣。我注意到有一些关于通过Retrofit 1.X解析嵌套JSON对象的文章,但是最新的Retrofit 2.0API发生了很大变化,这

  • 问题内容: 我是JSON的新手,我手上有这个项目,需要我解析JSON并将其某些内容显示在ListView中。问题是我现在阅读的文档处理的是包含JSON数组的JSON对象,而我的案例涉及处理嵌套对象。简而言之,这里是摘要:我将Delphi XE2与DBXJSON一起使用。我将一些值发布到服务器,它使用如下所示的JSON对象进行回复: 我想要实现的是解析每个项目(即“钱包”)并将其作为标题添加到一个列

  • 问题内容: 我正在尝试解析JSON对象,其中的一部分看起来像这样: 等等.... 到目前为止,通过执行以下操作,我可以非常简单地解析: 但是,当我尝试将其用作“名称:”时,它将不起作用。 我试过了: 当我尝试这样做时,我得到“找不到JSONObject [业务]”。 当我尝试: 我得到了预期的“找不到JSONObject [名称]”。 我在这里做错了什么?我缺少一些基本的东西。 问题答案: 好吧,

  • 编写我自己的JSON转换器工厂,它扩展converter.factory. 以字符串类型返回原始响应,并自己解析。但是根据我最初的研究,从改型2.0中得到原始的响应并不容易。Retrofit 2.0似乎坚持在将响应传递给我之前将其转换为某个内容,而且Retrofit没有提供自己的。(我可能错了~) Update:我们实际上可以通过将设置为HTTP API接口的pojo,并使用Retrofit提供的

  • 下面是一些示例代码: On doing JSONObject innerObj = (JSONObject) obj.get(“root1”);- 它给出: 线程“main”中出现异常Java . lang . classcastexception:Java . lang . string不能转换为org.json.JSONObject 我尝试了Gson、JSONParser-但仍然无法做到...

  • 问题内容: 有一个小问题上的话题,但他们都不来覆盖我的情况,因此我创建一个新的。 我有如下的JSON: 有没有办法解组嵌套的bar属性并将其直接分配给struct属性而不创建嵌套的struct? 我现在采用的解决方案如下: 这是简化版本,请忽略详细信息。如您所见,我希望能够解析并将其值分配给 我见过有人在使用地图,但这不是我的情况。除了一些特定的元素外,我基本上不关心(一个大对象)的内容。 在这种