反序列化复杂的gson - Java

时间:2014-03-26 19:21:24

标签: java deserialization gson

我有一组对象,如下所示。

{
  "propone": {
    "proponeone": {
      "a": 1,
      "b": 1,
      "c": 1
    },
    "proponetwo": {
      "a": 1
    },
    "proponethree": {
      "a": 1,
      "b": 1
    },
    "proponethree": {
      "a": 1,
      "b": 1,
      "c": 1
    }
  },
  "proptwo": {
    "proptwoone": [
      "val1",
      "val2",
      "val3",
      "val4"
    ],
   "proptwoone": [
      "val5",
      "val6",
      "val7"
    ]
  }
}

我将这个数组读取到JsonObject,我想反序列化这个对象数组。我想把&#34; proptwoone&#34;在HashMap类型<String, ArrayList<String>>中。有没有办法做到这一点?我用Gson。

1 个答案:

答案 0 :(得分:1)

如果您的JSON结构总是那样,您可以尝试创建一个这样的类,使用通用的Object来表示您不感兴趣的部分:

public class Response {
  public Object propone;
  public HashMap<String, ArrayList<String>> proptwo;
}

然后用你的解析你的JSON:

Response response = gson.fromJson(yourJsonString, Response.class);

您的HashMap将在:

response.proptwo

但我想如果您有重复的字段名称proptwoone ...

,这将不起作用