Как преобразовать объект Java в объектный узел Джексона?
У меня есть класс объектов 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;
}
1 ответ
Вы могли бы использовать valueToTree()
, Функционально это похоже на сериализацию значения в JSON и анализ JSON как дерева, но более эффективно.
ObjectNode tree = mapper.valueToTree(foo);