【问题标题】:Unable to construct java object from json无法从 json 构造 java 对象
【发布时间】:2015-08-19 07:22:57
【问题描述】:

谁能告诉我Java类结构相当于下面的json:

{
    "status": "OK",
    "data": 
    {
        "group_id":2758,
        "0":
        {
            "id": "2758-1",
            "customid": "1",
            "customid1": "",
            "customid2": "",
            "mobile": "9190********",
            "status": "AWAITED_DLR",
        },
        "1":
        {
            "id": "2758-2",
            "customid": "2",
            "customid1": "",
            "customid2": "",
            "mobile": "9190********",
            "status": "AWAITED_DLR",
        }
            ...
    }
    "message": "Campaign Submitted successfully"
}

无法确定data 对象的结构,因为它包含group_id 和其他对象的列表。

【问题讨论】:

  • “data”包含“group_id”和具有“id”、“customid”、“customid1”的对象...
  • 是的..正如你所说的“数据”包含“group_id”和具有“id”、“customid”、“customid1”的对象
  • 确实如此。这应该是一个提示。

标签: json jackson gson


【解决方案1】:

你可以创建一个代表你的结构的第一类:

  • 一个 Int : group_id
  • 一个 ArrayList:数据,包含 Item 类型的对象

然后你创建代表“0”和“1”结构的第二个类Item。

如果要保留标签“0”、“1”,可以将数据类型设为Hashmap<String,Item>,而不是ArrayList。

【讨论】:

  • "0" 和 "1" 不是标签,它们是索引,如果有更多对象,可能会变为 3,4,5
  • 所以使用ArrayList,您可以通过具有此类列表的索引访问数据。
【解决方案2】:

你可以使用地图:

class Data {
   int group_id;
   Map<Integer, InnerObject> map = new HashMap<>();
}

Data data = new Data();
data.group_id = 2758;
data.map.put(0, innerObject0);
data.map.put(1, innerObject1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多