1

我有一个 Java 对象类,比如Student. 如何将其转换为ObjectNode? 它可以是嵌套对象(多级嵌套)。

我正在尝试使用以下代码将对象转换为ObjectNode,但它首先将对象转换为 a 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;
}
4

1 回答 1

1

你可以使用valueToTree(). 它在功能上类似于将值序列化为 JSON 并将 JSON 解析为树,但效率更高。

ObjectNode tree = mapper.valueToTree(foo);
于 2019-05-22T10:23:59.300 回答