com.jayway.jsonpath.JsonPath.read 返回的Object 如何转换成 jackson.databind.node.ObjectNode Object 例如:Object ss=JsonPath.read(json,"$.root.name"); 将ss 转换成 ObjectNode
时间: 2023-11-19 18:04:56 浏览: 33
可以使用 Jackson 库中的 `ObjectMapper` 类来将 `Object` 对象转换为 `ObjectNode` 对象。具体步骤如下:
1. 引入 Jackson 库的依赖:
```xml
<!-- pom.xml -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
```
2. 创建 `ObjectMapper` 对象:
```java
ObjectMapper objectMapper = new ObjectMapper();
```
3. 将 `Object` 对象转换为 `JsonNode` 对象:
```java
JsonNode jsonNode = objectMapper.valueToTree(ss);
```
4. 将 `JsonNode` 对象转换为 `ObjectNode` 对象:
```java
ObjectNode objectNode = (ObjectNode) jsonNode;
```
完整代码示例:
```java
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.jayway.jsonpath.JsonPath;
public class Example {
public static void main(String[] args) {
String json = "{\"root\": {\"name\": \"John\", \"age\": 30}}";
Object ss = JsonPath.read(json, "$.root.name");
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.valueToTree(ss);
ObjectNode objectNode = (ObjectNode) jsonNode;
System.out.println(objectNode.get("value").asText()); // 输出 "John"
}
}
```