首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >杰克逊支持JsonPath注解吗

杰克逊支持JsonPath注解吗
EN

Stack Overflow用户
提问于 2016-04-17 16:09:09
回答 1查看 1.7K关注 0票数 4

我在springmvc框架中研究响应的json解码,并使用jackson converter作为实现。现在有了一个案例。有些物体很大,有很深的层次,我想要获取最底层的信息。有没有像jsonPath这样的方法,通过注释字段或类似的方法来帮助我呢?

EN

回答 1

Stack Overflow用户

发布于 2016-04-18 05:00:39

最简单的方法之一是使用'at‘函数将根转移到指定的JSON节点。

在下面的示例中,我将根节点转移到了node3。我已经添加了如何将node3转换为简单POJO的示例。您还可以直接访问子节点,而无需将其转换为POJO。

代码语言:javascript
复制
private static final String JSON = "{\"node1\": {\"node2\": {\"node3\": {\"title2\":\"test\"}}}}";

public static void main(String []args) throws IOException {
    ObjectMapper mapper = new ObjectMapper();
    JsonNode root = mapper.readTree(JSON);

    JsonNode node = root.at("/node1/node2");
    System.out.println(node);
    System.out.println("-----------------");
    JsonNode node3 = node.at("/node3");
    System.out.println(node3);
    System.out.println(node3.asText());
    System.out.println("-----------------");
    Node result = mapper.readValue(node3.toString(), Node.class);

    System.out.println(result);
}

注意,at方法永远不会返回null!在方法javadoc中:

代码语言:javascript
复制
Method will never return null; if no matching node exists, 
will return a node for which {@link #isMissingNode()} returns true.

如果您发布JSON示例,并告诉我您希望忽略哪些节点以及您希望解析哪些节点,我可以给出一个与您的问题更相关的答案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36674131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档