JSONArray 批量修改某个值
时间: 2023-08-20 21:23:10 浏览: 105
如果你想要批量修改JSONArray中某个键对应的值,可以遍历JSONArray并通过JSONObject的put方法来修改对应键的值。以下是一个示例代码:
```java
JSONArray jsonArray = new JSONArray("[{\"name\":\"Alice\",\"age\":20},{\"name\":\"Bob\",\"age\":25},{\"name\":\"Charlie\",\"age\":30}]");
String key = "age";
int newValue = 40;
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
jsonObject.put(key, newValue);
}
System.out.println(jsonArray.toString());
```
在上面的示例中,我们遍历了JSONArray中的所有JSONObject,并修改了每个JSONObject中"age"键对应的值为40。最后我们打印输出了修改后的JSONArray。
相关问题
JSONArray 如何拿指定值里面某个指定值
如果你想在 JSONArray 中的一组 JSON 对象中,获取某个指定字段名的值,可以通过遍历 JSONArray 中的每个 JSON 对象,然后再分别获取其中指定字段名的值。
以下是一个通过遍历 JSONArray 获取指定字段名的值的示例代码:
```
// 假设 jsonArray 是一个 JSONArray 对象
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i); // 获取当前 JSON 对象
String value = jsonObject.getString("fieldName"); // 获取指定字段名的值
// 对获取到的 value 进行处理
// ...
}
```
在上面的代码中,我们通过 `getJSONObject()` 方法获取当前 JSON 对象,然后再通过 `getString()` 方法获取指定字段名的值。如果你需要获取的是其他类型的值,例如整数或者布尔值,可以使用相应的方法,例如 `getInt()` 或者 `getBoolean()`。
需要注意的是,如果指定字段名不存在,`getString()` 等方法会返回 `null`,因此在使用返回值前最好先进行判断。例如可以使用 `containsKey()` 方法判断字段是否存在,例如:
```
if (jsonObject.containsKey("fieldName")) {
String value = jsonObject.getString("fieldName");
// 对获取到的 value 进行处理
// ...
}
```
如何循环获取JSONArray中的某个字段
可以使用for循环遍历JSONArray中的每个JSONObject,然后通过get方法获取对应的字段值。
示例代码:
```
JSONArray jsonArray = new JSONArray("[{\"name\":\"张三\",\"age\":20},{\"name\":\"李四\",\"age\":25}]");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
System.out.println("姓名:" + name + ",年龄:" + age);
}
```
输出结果:
```
姓名:张三,年龄:20
姓名:李四,年龄:25
```
阅读全文