【问题标题】:How to convert a Java object to a Jackson ObjectNode? [duplicate]如何将 Java 对象转换为 Jackson ObjectNode? [复制]
【发布时间】:2019-05-22 10:08:42
【问题描述】:

我有一个 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;
}

【问题讨论】:

    标签: java json object-notation jsonnode


    【解决方案1】:

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

    ObjectNode tree = mapper.valueToTree(foo);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 2018-07-19
      • 2015-03-03
      相关资源
      最近更新 更多