Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jackson支持JsonPath注释吗_Java_Spring_Jackson_Jsonpath - Fatal编程技术网

Java Jackson支持JsonPath注释吗

Java Jackson支持JsonPath注释吗,java,spring,jackson,jsonpath,Java,Spring,Jackson,Jsonpath,我当时正在springmvc框架中研究Responses的json解码,并使用jackson converter作为实现。 现在有个案子。有些物体是巨大的,有很深的层次,我想抓住最底层的信息。 有没有类似于jsonPath的方法可以通过注释字段或类似的方式来帮助我?最简单的方法之一是使用“at”函数将根转移到指定的JSON节点 在下面的示例中,我将根节点移动到节点3。我添加了如何将node3转换为简单POJO的示例。您还可以直接访问子节点,而无需将其转换为POJO private static

我当时正在springmvc框架中研究Responses的json解码,并使用jackson converter作为实现。 现在有个案子。有些物体是巨大的,有很深的层次,我想抓住最底层的信息。
有没有类似于jsonPath的方法可以通过注释字段或类似的方式来帮助我?

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

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

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:

Method will never return null; if no matching node exists, 
will return a node for which {@link #isMissingNode()} returns true.
如果您发布JSON示例并告诉我您想要忽略哪些节点以及您想要解析哪些节点,我可以给出一个与您的问题更相关的答案