我有一个Java对象类,例如Student
。如何将其转换为ObjectNode
?它可以是一个嵌套对象(多层嵌套)。
我正在尝试遵循以下代码将对象转换为ObjectNode
,但是它首先将对象转换为String
,然后将其转换为ObjectNode
,这看起来很耗费操作。
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
try {
String json = mapper.writeValueAsString(student);
JsonNode jsonNode = mapper.readTree(json);
ObjectNode objectNode = jsonNode.deepCopy();
return objectNode;
} catch (Exception e) {
// Handle exception
}
我正在寻找一种更好的方法,因为我感觉通过这种方法,我正在执行2级序列化/反序列化。
public class Student {
public String name;
public int id;
public ArrayList<Subjects> subjects;
public Address address;
}
答案 0 :(得分:1)
您可以使用valueToTree()
。它的功能类似于将值序列化为JSON并将JSON解析为树,但效率更高。
ObjectNode tree = mapper.valueToTree(foo);