【问题标题】:Is this a valid JSON?这是一个有效的 JSON 吗?
【发布时间】:2014-04-02 10:43:21
【问题描述】:

我成功解析了一个看起来像这样的 json,在这种特殊情况下,它表示一个包含 2 个项目的数组:

{
  "items": [
    {
      "id": 1,
      "name": "John"
    },
    {
      "id": 2,
      "name": "Mark"
    }
  ]
}

但是,我不知道如何解析这样的:

{
  "items": {

    "1": {
      "id": 1,
      "name": "John"     
    },
    "2": {
      "id": 2,      
      "name": "Mark"
    }

  }
}

如您所见,第二个 json 与前一个非常相似,除了 items 之后它以“{”开头,这意味着它是一个对象而不是数组,但我需要将这些数据视为数组.

这是一个无效的 json,还是我遗漏了什么?

编辑:
好的,我知道了。 json 有效。
让我重新提出这个问题。 我实际上在寻找的是如何将第二个 json 放入项目列表中。 在代码中的某处我正在这样做:

ItemsResponse itemsResponse = JsonMarshaller.fromJson(ItemsResponse.class, response);

还有 ItemsResponse 类:

public class ItemsResponse {
    private List<Item> items;
    // getters and setters
}

但它失败了一个异常,它说 json 的开头是一个对象,而不是一个数组。

解决方案:
正确的方法是使用Map 而不是List

public class ItemsResponse {
    private Map<String, Item> items;
    // getters and setters
}

【问题讨论】:

标签: android json


【解决方案1】:

阅读 Ahmad Dwaik 'Warlock' 的回答 here 你可以检查你的json here

【讨论】:

  • 是的,类别和键,这就是我所缺少的。从来没有机会解析以这种方式格式化的 json。谢谢。
猜你喜欢
  • 1970-01-01
  • 2014-03-25
  • 2016-11-24
  • 2010-11-25
  • 2011-03-08
  • 2017-09-30
  • 2014-03-14
  • 2012-11-17
  • 2020-03-19
相关资源
最近更新 更多