Как преобразовать объект 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);
Другие вопросы по тегам