java - 反序列化复杂的 gson - Java

标签 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,并且想要反序列化此对象数组。我想将“proptwoone”放入 HashMap类型 <String, ArrayList<String>> 。有没有办法做到这一点?我使用Gson。

最佳答案

如果您的 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...

关于java - 反序列化复杂的 gson - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22671060/

相关文章:

java - 使用 gson 反序列化嵌套的泛型类

java - 开发用户界面的最佳 Java 框架是什么?

Java 3d 编程 - 无法访问 3d 对象的更改位置

java - 在 "one time"处使用两个 MouseListener

c# - 如何二进制序列化程序自定义类

c# - 如何根据Json反序列化JArray数据创建DataTable?

java - 解析器适用于某些 ArrayList,抛出 Expected BEGIN_OBJECT,但对于其他 ArrayList 则抛出 STRING

java - GSON 正确序列化枚举,但将其反序列化为字符串

java - 如何使用 GSON 解析错误?

java - 在添加到构造函数之前检查 JSON 键是否为空