gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 06:15:49 25 4
gpt4 key购买 nike

我正在用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com