我如何获取 JSON 中子数组的数组值,即 A 数组的值 我想将结果填充到一个列表中,例如“Brimstone”,“Cross”,“Calvary”,这个问题实际上是我在完整代码可以在我的上一个问题中找到之前提出的问题的扩展How to get the value of a child node of a json array
我的 JSON 文件
{
"schools": [
{
"A": [
{
"name": "Brimstone"
},
{
"name": "Cross"
},
{
"name": "Calvary"
}
]
}
]
}
我的Java代码
private void parseResult_GetWebData(String result) {
try {
JSONObject response = new JSONObject(result);
JSONArray jsonArray = response.getJSONArray("schools");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.optJSONObject(i);
JSONArray jsonArray1 = jsonObject.getJSONArray("A");
for (int k = 0; k < jsonArray1.length(); k++) {
JSONObject jsonObject1 = jsonArray1.optJSONObject(k);
String name = jsonObject1.optString("name");
List<SchoolClass> schoolClassList;
schoolClassList = new ArrayList<>();
SchoolClass schoolClass = new SchoolClass();
schoolClass.setName(name);
schoolClassList.add(schoolClass);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
使用我的代码,我的列表中得到空白结果
最佳答案
尝试此代码
您正在为 A 的每个对象创建自定义对象数组列表
private void parseResult_GetWebData(String result) {
try {
JSONObject response = new JSONObject(result);
JSONArray jsonArray = response.getJSONArray("schools");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.optJSONObject(i);
JSONArray jsonArray1 = jsonObject.getJSONArray("A");
List<SchoolClass> schoolClassList = new ArrayList<>();
for (int k = 0; k < jsonArray1.length(); k++) {
JSONObject jsonObject1 = jsonArray1.optJSONObject(k);
String name = jsonObject1.optString("name");
SchoolClass schoolClass = new SchoolClass();
schoolClass.setName(name);
schoolClassList.add(schoolClass);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
关于java - 如何获取json数组中子数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59797284/