使用com.jayway.jsonpath 如何查询jackson.databind.node.ObjectNode 下面的节点例如:{"root":{"name":"zhansan"}}
时间: 2023-07-02 15:11:11 浏览: 145
ACCP5.OS2阶段模拟题
使用 com.jayway.jsonpath 查询 jackson.databind.node.ObjectNode 的节点可以按照以下步骤进行:
1. 将 ObjectNode 转换为 json 字符串:
```java
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(objectNode);
```
2. 使用 com.jayway.jsonpath 的 API 进行查询:
```java
String name = JsonPath.read(json, "$.root.name");
```
这里的 `$` 表示根节点,`.root.name` 表示根节点下的 `root` 节点的 `name` 属性。
完整的示例代码如下:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.jayway.jsonpath.JsonPath;
public class JsonPathDemo {
public static void main(String[] args) throws Exception {
// 创建 ObjectNode
ObjectMapper mapper = new ObjectMapper();
ObjectNode objectNode = mapper.createObjectNode();
objectNode.putObject("root").put("name", "zhansan");
// 将 ObjectNode 转换为 json 字符串
String json = mapper.writeValueAsString(objectNode);
// 使用 com.jayway.jsonpath 查询节点
String name = JsonPath.read(json, "$.root.name");
System.out.println(name); // 输出 "zhansan"
}
}
```
阅读全文