如何将 JsonNode 转换为 ObjectNode
How to convert JsonNode to 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
请帮忙!!
最后得到如下解决方案...
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());
但我不知道这是否是个好方法?
如果有比上面更好的,请告诉我。
谢谢!
您可以通过这种简单的方式将 JsonNode
转换为 ObjectNode
:
ObjectNode objectNode = jsonNode.deepCopy();
Available from Jackson 2.0 并使用 Jackson 2.4.0
进行测试
我试了几次,会好的!您只定义一个 Student Class
来映射属性。然后你可以将 jsonNode
转换为 Student
对象。
Student student = objectMapper.convertValue(jsonNode1, Student.class);
我认为这将适合您的需要!
我也遇到了这个错误,尽管在我的情况下这是一个愚蠢的错误。
我不小心导入了 org.codehaus.jackson.node.ObjectNode
而不是 com.fasterxml.jackson.databind.node.ObjectNode
。
使用 jackson 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
请帮忙!!
最后得到如下解决方案...
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());
但我不知道这是否是个好方法? 如果有比上面更好的,请告诉我。 谢谢!
您可以通过这种简单的方式将 JsonNode
转换为 ObjectNode
:
ObjectNode objectNode = jsonNode.deepCopy();
Available from Jackson 2.0 并使用 Jackson 2.4.0
进行测试我试了几次,会好的!您只定义一个 Student Class
来映射属性。然后你可以将 jsonNode
转换为 Student
对象。
Student student = objectMapper.convertValue(jsonNode1, Student.class);
我认为这将适合您的需要!
我也遇到了这个错误,尽管在我的情况下这是一个愚蠢的错误。
我不小心导入了 org.codehaus.jackson.node.ObjectNode
而不是 com.fasterxml.jackson.databind.node.ObjectNode
。
使用 jackson ObjectNode 修复了问题。