我正在使用 Jackson 来获取 Json,如下所示:
WSRequest request = WS.url("https://www.someurl.com");
Promise<WSResponse> promise = request.get();
Promise<JsonNode> jsonPromise = promise.map(s -> {return s.asJson();});
JsonNode jsonNode = jsonPromise.get(1000);
到现在为止还挺好。现在我有 jsonNode ,它是许多 Json 对象的数组。我想只保留包含某个字段的 Json 对象:值保留所有具有“courseLevel”:“basic”的对象。我该怎么做? ObjectMapper 是正确的方法还是更好的方法来过滤数组中的对象并只保留具有特定字段/值的对象?有什么建议吗?
最佳答案
ObjectMapper 用于将对象数据绑定(bind)到 JSON 文档。只有在反序列化后,您才能丢弃或保留对象。这是一个只保留对象的建议 "field":"value"
对存在:
Iterator<JsonNode> it = rootNode.iterator();
while (it.hasNext()) {
JsonNode node = it.next();
if (node.has("field") && !node.get("field").textValue().equals("value")) {
it.remove();
}
}
关于json - 使用 Jackson 和 JsonNode,如何过滤具有某些 "field":"value"的 Json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32467473/