gpt4 book ai didi

java - 如何使用 GSON 获取 JSON 数组中的值

转载 作者:行者123 更新时间:2023-12-01 19:52:41 25 4
gpt4 key购买 nike

我想知道 JSON 数组中的选择值。

我的 JSON 是

{
"meta": {
"is_end": true,
"total_count": 1,
"pageable_count": 1
},
"documents": [
{
"road_address": {
"undergroun_yn": "N",
"road_name": "충대로",
"underground_yn": "N",
"region_2depth_name": "청주시 서원구",
"zone_no": "28644",
"sub_building_no": "",
"region_3depth_name": "개신동",
"main_building_no": "1",
"address_name": "충북 청주시 서원구 충대로 1",
"y": "36.63003935314667",
"x": "127.45479196889647",
"region_1depth_name": "충북",
"building_name": "충북대학교"
},
"address_name": "충북 청주시 서원구 충대로 1",
"address": {
"b_code": "4311210900",
"region_3depth_h_name": "성화.개신.죽림동",
"main_address_no": "12",
"h_code": "4311259000",
"region_2depth_name": "청주시 서원구",
"main_adderss_no": "12",
"sub_address_no": "",
"region_3depth_name": "개신동",
"address_name": "충북 청주시 서원구 개신동 12",
"y": "36.6284039605616",
"x": "127.45921419389084",
"mountain_yn": "N",
"zip_code": "361763",
"region_1depth_name": "충북",
"sub_adderss_no": ""
},
"y": "36.63003935314667",
"x": "127.45479196889647",
"address_type": "ROAD_ADDR"
}
]
}

但是,出现此代码错误,显示“java.lang.IllegalStateException:不是 JSON 对象”所以,我尝试解决它们并寻找多种方法。我不使用“元”的一部分,只使用 JSON 中的“文档”。然后,我编写java代码。我原来的代码是

JsonElement jsonElement = parser.parse(html.toString()).getAsJsonObject();
JsonObject rootObj = jsonElement.getAsJsonObject();


JsonObject element = rootObj.get("documents").getAsJsonObject();
String y = element.getAsJsonObject().get("x").toString();
String x = element.getAsJsonObject().get("y").toString();

System.out.println(y);
System.out.println(x);
System.out.println(html.toString());
return html.toString();

我知道“文档”是 JSON 数组,所以我修改了我的代码。我修改后的java代码是

    JsonElement jsonElement = parser.parse(html.toString()).getAsJsonObject();
JsonObject rootObj = jsonElement.getAsJsonObject();
String y = rootObj.getAsJsonArray().get(Integer.parseInt("x")).toString();
String x = rootObj.getAsJsonArray().get(Integer.parseInt("y")).toString();

System.out.println(y);
System.out.println(x);
System.out.println(html.toString());
return html.toString();

但也发生错误,显示“java.lang.IllegalStateException:不是 JSON 数组”我想要得到像这样的结果

{
"documents": [
{
"road_address": {
"undergroun_yn": "N",
"road_name": "충대로",
"underground_yn": "N",
"region_2depth_name": "청주시 서원구",
"zone_no": "28644",
"sub_building_no": "",
"region_3depth_name": "개신동",
"main_building_no": "1",
"address_name": "충북 청주시 서원구 충대로 1",
"y": "36.63003935314667",
"x": "127.45479196889647",
"region_1depth_name": "충북",
"building_name": "충북대학교"
},
"address_name": "충북 청주시 서원구 충대로 1",
"address": {
"b_code": "4311210900",
"region_3depth_h_name": "성화.개신.죽림동",
"main_address_no": "12",
"h_code": "4311259000",
"region_2depth_name": "청주시 서원구",
"main_adderss_no": "12",
"sub_address_no": "",
"region_3depth_name": "개신동",
"address_name": "충북 청주시 서원구 개신동 12",
"y": "36.6284039605616",
"x": "127.45921419389084",
"mountain_yn": "N",
"zip_code": "361763",
"region_1depth_name": "충북",
"sub_adderss_no": ""
},
"y": "36.63003935314667",
"x": "127.45479196889647",
"address_type": "ROAD_ADDR"
}
]
}
}

并获取键“x”、“y”和这些值但是,错误不断发生。如何解决?

最佳答案

您应该迭代 JSONArray 以查找 JSONObject,然后读取 x 和 y 值。

JsonElement jsonElement = parser.parse(html.toString()).getAsJsonObject();
JsonObject rootObj = jsonElement.getAsJsonObject();
JsonArray documents = (JsonArray) rootObj.get("documents");
Iterator < JsonElement > itr = documents.iterator();
while (itr.hasNext()) {
JsonObject jsonObject = (JsonObject) itr.next();
double x = jsonObject.getDouble("x");
double y = jsonObject.getDouble("y");
}

关于java - 如何使用 GSON 获取 JSON 数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50785794/

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