JSONArray批量修改某个值。用stream
使用Java 8的流(Stream)可以很方便地对JSONArray进行批量修改某个值。
以下是一个示例代码:
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.stream.IntStream;
public class JSONArrayStreamDemo {
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray("[{\"name\":\"Alice\",\"age\":20},{\"name\":\"Bob\",\"age\":30},{\"name\":\"Charlie\",\"age\":40}]");
// 使用IntStream的range方法遍历JSONArray的索引
IntStream.range(0, jsonArray.length())
// 通过索引获取JSONObject
.mapToObj(jsonArray::getJSONObject)
// 修改JSONObject的age属性值
.peek(jsonObject -> jsonObject.put("age", jsonObject.getInt("age") + 10))
.forEach(System.out::println);
System.out.println(jsonArray);
}
}
运行这段代码,将会输出以下结果:
{"name":"Alice","age":30}
{"name":"Bob","age":40}
{"name":"Charlie","age":50}
[{"name":"Alice","age":30},{"name":"Bob","age":40},{"name":"Charlie","age":50}]
在这个示例中,我们首先创建了一个JSONArray对象,然后使用IntStream的range方法遍历了JSONArray的索引。通过索引我们可以获取到JSONArray中的每个JSONObject对象。
接着,我们使用mapToObj方法将索引映射为JSONObject对象。然后使用peek方法对JSONObject进行修改,这里我们将age属性值增加了10。
最后,我们使用forEach方法打印出修改后的JSONObject对象,并输出整个JSONArray对象。
通过使用流(Stream),我们可以简洁地实现JSONArray的批量修改某个值
原文地址: https://www.cveoy.top/t/topic/iNh8 著作权归作者所有。请勿转载和采集!