如何将 JsonNode 转换为 ObjectNode

新手上路,请多包涵

我有一个 com.fasterxml JsonNode 带有一些数据的对象。我需要对其数据进行一些操作。我在谷歌上搜索了答案,但没有得到正确的答案。你能建议我如何操作 JsonNode 数据吗?我还尝试将 JsonNode 转换为 ObjectNode 如下

ObjectNode objectNode = (ObjectNode)filterJson;

但它给出了以下异常….

 java.lang.ClassCastException: com.fasterxml.jackson.databind.node.TextNode cannot be cast to
com.fasterxml.jackson.databind.node.ObjectNode

请帮忙!!

原文由 Mr. Noddy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.5k
2 个回答

最后,我得到了如下解决方案……

 JsonNode jsonNode = Json.toJson("Json String");
ObjectNode node = (ObjectNode) new ObjectMapper().readTree(jsonNode.asText());
//perform operations on node
jsonNode = (JsonNode) new ObjectMapper().readTree(node.toString());

或下面的另一个…

 ObjectNode node = (ObjectNode) new ObjectMapper().readTree("Json String")
//perform operations on node
jsonNode = (JsonNode) new ObjectMapper().readTree(node.toString());

但我不知道这是否是好方法?如果有比上面更好的,请告诉我。谢谢!

原文由 Mr. Noddy 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以通过这种简单的方式将 --- 转换为 JsonNode ObjectNode

 ObjectNode objectNode = jsonNode.deepCopy();

可从 Jackson 2.0 获得 并使用 Jackson 2.4.0 进行测试

原文由 Daniele Licitra 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题