json - 使用 Jackson 和 JsonNode,如何过​​滤具有某些 "field":"value"的 Json 对象

标签 json jackson

我正在使用 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/

相关文章:

ios - 从服务器获取 JSON 后如何更新应用程序中的标签?如果应该实时更新

javascript - Npm 在错误的目录中搜索 package.json

java - Jackson——递归替换匹配的字段

java - 如何使用 Jackson ObjectMapper 解析 java 对象的 json 响应

java - Spring REST 服务 : how to configure to remove null objects in json response

php - 使用 PHP/MySQL 客户端从在线无缝过渡到离线?

ruby-on-rails - Rails – 使用 json 捆绑安装问题

javascript - 使用 JSON 在 Javascript 中生成动态表

java - 使用 Jackson 序列化/反序列化不同类型的 map

java - JSON HashMap 反序列化