gpt4 book ai didi

java - 如何在 JSON 文件中搜索

转载 作者:行者123 更新时间:2023-12-01 17:53:31 25 4
gpt4 key购买 nike

我有一个由 JSON 对象和数组组成的 JSON 文件。该文件如下所示:

{"Report": {"Information": [
{
"table_name1": [
{"ID": 312},
{"LASTNAME": "TESTER2"},
{"GUID": "ADSA31321"},
{"PHONE_MOBILE": 931024}}
],
"table_name2": [
{"ID": 312},
{"PID": "TESTER2"},
{"GUID": "ADSA31321"}
]
}
]}}

我正在尝试更新 table_name 数组中的值。问题是这个名称是动态的,而不是为数组指定的静态名称。

我正在使用下面的 Java 类来获取 ID。

if( inputJs.getJSONObject("Report").get("Information") instanceof JSONArray) {
JSONArray val= inputJs.getJSONObject("Report").getJSONArray("Information");
for(int i = 0; i < val.length(); i++) {
JSONArray jsa2=val.getJSONArray(i);
for(int j = 0; j < jsa2.length(); j++) {
JSONObject jso= jsa2.getJSONObject(j);
if(jso.equals("GUID")) {
jso.put("GUID", GetRegExpr(3));
}
}
}
}

这一行:JSONArray jsa2=val.getJSONArray(i);创建以下错误:

org.json.JSONException: JSONArray[0] is not a JSONArray.

即使“table_name1”是一个 JSONArray。

任何帮助将不胜感激。

最佳答案

试试这个...

informationList = new JSONObject().getJSONObject("Report").getJSONArray("Information");

for (int i = 0; i < informationList.length(); i++) {
JSONObject information = informationList.getJSONObject(i);

Iterator<String> keys = information.keys();

while (keys.hasNext()) {
String tableName = keys.next();
JSONArray table = information.getJSONArray(tableName);

for (int j = 0; j < table.length(); j++) {
JSONObject data = table.getJSONObject(j);
String k = data.keys().next();

if (k.equals("GUID")) {
data.put("GUID", "edit ...");
}
}
}
}

如果我是你,我会使用其他库,例如 Gson...

关于java - 如何在 JSON 文件中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47433511/

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