这是一个有效的JSON吗?

时间:2014-04-02 10:43:22

标签: android json

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

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

但是,我无法弄清楚如何解析这样的一个:

{
  "items": {

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

  }
}

正如你所看到的,第二个json与之前的json非常相似,除了items之后它以" {"开头,这意味着它是一个不是数组的对象,但我需要将数据视为数组。

这是一个无效的json,还是我错过了什么?

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

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

和ItemsResponse类:

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

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

SOLUTION:
正确的方法是使用Map代替List

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

1 个答案:

答案 0 :(得分:1)

阅读Ahmad Dwaik'术士'here的答案 你可以查看你的json here