java 遍历 JSONArray
时间: 2023-12-16 20:27:46 浏览: 117
以下是两种Java遍历JSONArray的方法:
1.使用for循环遍历
```java
public static void f2(JSONArray ja) {
for(int i=0;i<ja.size();i++) {
System.out.println(ja.getJSONObject(i).get("id"));
}
}
```
2.使用for循环和JSONObject遍历
```java
for (int i = 0; i < jsonArr.size(); i++) {
JSONObject jsonObject = jsonArr.getJSONObject(i);
String name = jsonObject.getString("name");
Integer age = (Integer) jsonObject.get("age");
System.out.println("name:"+name+";age:"+age);
}
```
相关问题
java 遍历JSONArray
在Java中遍历JSONArray可以使用多种方法。其中一种方法是使用for循环来遍历JSONArray的元素。你可以通过获取JSONArray的大小,并使用一个索引变量来循环遍历数组。在每次循环中,使用getJSONObject方法获取JSONObject对象,并通过键名来获取对应的值。以下是使用for循环遍历JSONArray的示例代码:
```java
public static void f2(JSONArray ja) {
for (int i = 0; i < ja.size(); i++) {
System.out.println(ja.getJSONObject(i).get("id"));
}
}
```
另一种方法是使用Java 8及以上版本中的Stream流。你可以使用JSONArray的stream()方法将其转换为流,并使用forEach方法来遍历每个JSONObject对象。在forEach方法中,你可以使用Lambda表达式来处理每个JSONObject对象,并获取对应的值。以下是使用Stream流遍历JSONArray的示例代码:
```java
JSONArray jSONArray = new JSONArray();
// 假设已经将数据添加到jSONArray中
StringBuffer sBuffer = new StringBuffer();
jSONArray.stream().forEach(jsonobj -> {
JSONObject jsonObject = (JSONObject) jsonobj;
sBuffer.append(jsonObject.getInteger("id")).append(",");
});
System.out.println(sBuffer.toString());
```
还有一种方法是使用optJSONArray方法来获取JSONArray中的子数组,并继续使用循环或流来遍历子数组中的元素。以下是使用optJSONArray方法遍历JSONArray的示例代码:
```java
JSONArray jsonArray = new JSONArray();
// 假设已经将数据添加到jsonArray中
for (int i = 0; i < jsonArray.size(); i++) {
JSONArray childJsonArray = jsonArray.optJSONArray(i);
// 处理子数组中的元素
}
```
这些是在Java中遍历JSONArray的三种常见方法。你可以根据自己的需求选择适合的方法来遍历JSONArray。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [如何遍历JsonArray在Java](https://blog.csdn.net/weixin_35775988/article/details/118830439)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [java中JSONArray 遍历方式](https://blog.csdn.net/qq_41877050/article/details/117694224)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
java遍历jsonarray取值
你可以使用Java中的JSONArray类来遍历JSON数组并获取其中的值。下面是一个示例代码:
```java
import org.json.JSONArray;
import org.json.JSONException;
public class Main {
public static void main(String[] args) {
String jsonString = "[{\"name\":\"John\", \"age\":30}, {\"name\":\"Alice\", \"age\":25}]";
try {
JSONArray jsonArray = new JSONArray(jsonString);
for (int i = 0; i < jsonArray.length(); i++) {
String name = jsonArray.getJSONObject(i).getString("name");
int age = jsonArray.getJSONObject(i).getInt("age");
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
```
在上述代码中,我们首先创建了一个包含JSON数组的字符串。然后,我们使用JSONArray类将该字符串转换为JSONArray对象。接下来,我们使用循环遍历JSONArray并获取每个对象中的"name"和"age"字段的值。最后,我们打印出每个对象的"name"和"age"值。
请确保在使用上述代码之前,你已经包含了JSON-java库(例如,通过Maven或手动下载并添加JAR文件)。
希望对你有所帮助!如果你有任何其他问题,请随时问我。
阅读全文