javascript - 在 Java 中不使用 POJO 类解析不同的 JSON 响应

标签 javascript java json

我正在用 Java 解析来自 REST API 的 JSON 响应,但我不想为每个响应创建一个 Java 类 (POJO)(响应具有不同的数据结构和字段)。 Java 中是否有更通用的 JSON 解析器类似于 JavaScript 的简单语法?

下面的 JSON 只是众多 REST 端点之一的结果

{
    "f1" : "volume",
    "f2" : "gender",
    "f3" : "days",
    "f4" : [{
            "id" : "F",
            "name" : "female",
            "values" : [{
                    "name" : "September",
                    "value" : 12
                }
            ]
        }, {
            "id" : "M",
            "name" : "male",
            "values" : [{
                    "name" : "September",
                    "value" : 11
                }
            ]
        }
    ]
}

在 JavaScript 中,访问 female 的值:

jsonRoot.f4[0].values[0].value

这比必须创建大量 Java 类更简洁。您能否提出类似的建议或避免创建许多 POJO 的方法?

最佳答案

如果你导入了com.google.gson的jar,你可以得到这样的值:

     String str="{" +
            "    \"f1\" : \"volume\"," +
            "    \"f2\" : \"gender\"," +
            "    \"f3\" : \"days\"," +
            "    \"f4\" : [{" +
            "            \"id\" : \"F\"," +
            "            \"name\" : \"female\"," +
            "            \"values\" : [{" +
            "                    \"name\" : \"September\"," +
            "                    \"value\" : 12" +
            "                }" +
            "            ]" +
            "        }, {" +
            "            \"id\" : \"M\"," +
            "            \"name\" : \"male\"," +
            "            \"values\" : [{" +
            "                    \"name\" : \"September\"," +
            "                    \"value\" : 11" +
            "                }" +
            "            ]" +
            "        }" +
            "    ]" +
            "}";
    JsonParser parser=new JsonParser();
    JsonObject object=(JsonObject)parser.parse(str);
    String value=object.get("f4").getAsJsonArray().get(0).getAsJsonObject()
            .get("values").getAsJsonArray().get(0).getAsJsonObject()
            .get("value").getAsString();

关于javascript - 在 Java 中不使用 POJO 类解析不同的 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33727955/

相关文章:

json - Elasticsearch匹配多个IP子网DSL查询

c# - 在 Json.net 中获取错误 "Cannot add or remove items from Newtonsoft.Json.Linq.JProperty"

java - CPU 使用率高,几乎所有线程都处于阻塞状态

java - 在 Eclipse 插件中,是否存在与 MarkerAnnotationSpecification 扩展点等效的编程方式?

javascript - 如何从自动建议插件中获取所选项目的值

javascript - GreaseMonkey 有关 getElementsByClassName 的帮助

java - 无法解析获取无效数组范围 : 5 to 5 的响应

javascript - 如何从 json 对象输出一些东西?

javascript - HTML5 无尽的背景动画

javascript - 在注册时自动将客户分配给特定客户组 - Bigcommerce