假设我已经阅读了json树.
是否可以从中反序列化(不转换回字符串)?
public class TryDeserializeNode {
public static class MyClass {
private int x = 11, y = 12;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper();
MyClass myClass = new MyClass();
String string = mapper.writeValueAsString(myClass);
JsonNode tree = mapper.readTree(string);
// how to deserialize from tree directly?
// MyClass myclass2 = mapper.readValue(tree.toString(), MyClass.class);
MyClass myclass2 = mapper.readValue(tree, MyClass.class);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以简单地使用treeToValue:
MyClass myclass2 = mapper.treeToValue(tree, MyClass.class);
Run Code Online (Sandbox Code Playgroud)
mapper你的杰克逊映射器在哪里,tree是你的JsonNode.