Java:用Gson解析Json未知字段

标签 java json gson

我使用 gson 制作了一个 json 解析器,它基于对象模型方法。我的问题是,我在 json 上有一个对象,其中还有一些其他 JsonObject,但我不知道它们的名称,所以我无法使用 SerializedName。初始对象上的 JsonObjects 数量也是随机的。如何从初始对象迭代对象?

Json 样式:

"initial_obj": {
     "random_name1": { }
     "random_name50": { }
     "random_name9": { }
}

最佳答案

如果事先不知道字段名称,则将其转换为 Map<String, Object>使用 TypeToken

String str = "{\"initial_obj\": {\"random_name1\": { },\"random_name50\": { },\"random_name9\": { }}}";
Type type = new TypeToken<Map<String, Object>>() {}.getType();
Map<String, Object> data = new Gson().fromJson(str, type);
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(data));

输出:

{
  "initial_obj": {
    "random_name1": {},
    "random_name50": {},
    "random_name9": {}
  }
}

关于Java:用Gson解析Json未知字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25339735/

相关文章:

java - 在路径上移动对象

java - 将值从 jsp 发送到 servlet,然后返回到 jsp

javascript - 连接 JSON 属性

java - JsonElement 是整数还是 float ?

java - Kotlin TypeToken "Unresolved reference"错误

java - Web 应用程序的已安装程序/计算机信息

java - 如何使用 hibernate 过滤器过滤 hibernate 中的实体

javascript - 如何将 JSON 字符串转换并执行为带参数的函数?

php - json第一个索引值在jquery中获取

kotlin - 带有retrofit2 和kotlin 的errorBody