JSONArray openidArray = dataObject.getJSONArray("openid"); List<Object> dataList = new ArrayList<>(); for (int i = 0; i < openidArray.length(); i++) { Object obj = openidArray.get(i); dataList.add(obj); }
时间: 2024-02-05 22:02:29 浏览: 104
这段代码可以将"data"中的"openid"数组元素逐个添加到List中,也可以使用Java 8的Lambda表达式来替换for循环,代码如下:
```
JSONArray openidArray = dataObject.getJSONArray("openid");
List<Object> dataList = new ArrayList<>();
openidArray.forEach(dataList::add);
```
首先获取"openid"字段对应的JSONArray对象,将其存储在openidArray变量中。然后创建一个List对象,用于存储"openid"数组的元素。使用forEach()方法遍历openidArray对象,将每个元素添加到List中。在这里,使用了方法引用符号"::"来引用List的add()方法,将每个元素添加到List中。最终,dataList中存储的就是"openid"数组的所有元素。
相关问题
// 将字符串转为 JSON 对象 JSONObject jsonObject = new JSONObject(input); // 遍历 JSON 对象的每个属性 for (String key1 : jsonObject.keySet()) { JSONArray jsonArray1 = jsonObject.getJSONArray(key1); List<Map<String, List<Map<String, List>>>> list1 = new ArrayList<>(); // 遍历第一层 JSON 数组的每个元素 for (int i = 0; i < jsonArray1.length(); i++) { JSONObject jsonObject1 = jsonArray1.getJSONObject(i); maven 依赖
我不确定你的问题是关于代码还是 Maven 依赖,所以我来回答一下两个问题。
关于代码,这段代码是将一个字符串转换为 JSON 对象,并遍历其每个属性和每个属性对应的 JSON 数组元素。其中,代码中的 List<Map<String, List<Map<String, List>>>> 是一个复杂的数据结构,可能不是必要的,具体要看你的需求。
关于 Maven 依赖,你可以将以下代码添加到你的 pom.xml 文件中,以添加 JSON 解析库的依赖:
```
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>
```
这将添加 org.json 包的最新版本作为依赖项。注意,如果你已经在项目中使用了其他 JSON 库,则可能会出现依赖冲突问题。
// 遍历第一层 JSON 对象的每个属性 for (String key2 : jsonObject1.keySet()) { JSONArray jsonArray2 = jsonObject1.getJSONArray(key2); List<Map<String, List>> list2 = new ArrayList<>(); // 遍历第二层 JSON 数组的每个元素 keySet 爆红
这段代码的问题是,`keySet()`方法是`Map`的方法,而`jsonObject1`是`JSONObject`类型的对象,不是`Map`类型。因此,你需要使用`JSONObject`类型的方法来遍历JSON对象的每个属性,例如`keys()`方法。修改后的代码如下:
```
// 遍历第一层 JSON 对象的每个属性
for (Iterator<String> iter = jsonObject1.keys(); iter.hasNext();) {
String key2 = iter.next();
JSONArray jsonArray2 = jsonObject1.getJSONArray(key2);
List<Map<String, List>> list2 = new ArrayList<>();
// 遍历第二层 JSON 数组的每个元素
for (int j = 0; j < jsonArray2.length(); j++) {
JSONObject jsonObject2 = jsonArray2.getJSONObject(j);
// 处理第二层 JSON 对象
// ...
}
}
```
这样,就可以正确地遍历第一层JSON对象的每个属性,并且处理第二层JSON数组的每个元素。
阅读全文