jsonarray 去除对象 流
时间: 2024-02-03 13:03:05 浏览: 120
如果你想从一个 JSON 数组中移除一个对象,可以使用 Java 8 中的流操作和 JSON 解析库来实现。
下面是一个示例代码,它使用 Jackson 库来解析 JSON,使用流操作从一个 JSON 数组中移除指定的对象:
```java
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import java.util.stream.Collectors;
public class RemoveObjectFromJsonArray {
public static void main(String[] args) throws Exception {
// 假设以下是一个 JSON 数组字符串
String jsonArrayString = "[{\"name\":\"Alice\", \"age\":20}, {\"name\":\"Bob\", \"age\":30}, {\"name\":\"Charlie\", \"age\":40}]";
// 创建 ObjectMapper 对象
ObjectMapper objectMapper = new ObjectMapper();
// 解析 JSON 数组字符串为 JsonNode 对象
JsonNode jsonArray = objectMapper.readTree(jsonArrayString);
// 移除 name 为 Bob 的对象
JsonNode result = ((ArrayNode) jsonArray)
.stream()
.filter(node -> !node.get("name").asText().equals("Bob"))
.collect(Collectors.toCollection(ArrayNode::new));
// 输出移除后的 JSON 数组字符串
System.out.println(result.toString());
}
}
```
在上面的代码中,我们首先使用 Jackson 库解析 JSON 数组字符串为一个 JsonNode 对象。然后,我们使用流操作和 `filter` 方法来移除指定的对象,这里我们将 `name` 属性为 `"Bob"` 的对象移除。最后,我们将移除后的 JsonNode 对象转换为一个新的 JSON 数组字符串并输出。
阅读全文