JSONArray用stream批量修改某个值。
可以使用Java 8的Stream API和JSONArray的流式操作来批量修改JSONArray中的某个值。以下是一个示例代码:
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.stream.IntStream;
public class JSONArrayStreamExample {
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray("[{\"id\": 1, \"name\": \"John\"}, {\"id\": 2, \"name\": \"Jane\"}, {\"id\": 3, \"name\": \"Bob\"}]");
jsonArray = new JSONArray(
IntStream.range(0, jsonArray.length())
.mapToObj(index -> {
JSONObject jsonObject = jsonArray.getJSONObject(index);
jsonObject.put("name", "Updated " + jsonObject.getString("name"));
return jsonObject;
})
.toArray()
);
System.out.println(jsonArray);
}
}
在上面的代码中,我们首先创建了一个JSONArray对象,然后使用IntStream.range()方法生成一个索引范围的流。接下来,我们使用mapToObj()方法将每个索引映射为JSONArray中对应的JSONObject对象,并对name属性进行修改。最后,我们使用toArray()方法将流中的元素收集到一个新的JSONArray对象中。
输出结果为:
[{"id":1,"name":"Updated John"},{"id":2,"name":"Updated Jane"},{"id":3,"name":"Updated Bob"}]
注意:上述代码假设JSONArray中的每个元素都是JSONObject对象,并且每个元素都有name属性。如果实际情况不符合这个假设,需要根据实际情况进行修改
原文地址: https://www.cveoy.top/t/topic/iNiK 著作权归作者所有。请勿转载和采集!