java - 与 jackson 一起将对象转储到字符串

标签 java jackson gson

我正在使用 Gson 在我的应用程序中生成调试输出

Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
gson.toJson(myObject);

但 Gson 在尝试序列化数据结构时确实会提示循环引用错误。 这可以用 Jackson 库来完成吗?

UPD Gson 2.3.1:2014 年 11 月 20 日发布

Added support to serialize objects with self-referential fields. The self-referential field is set to null in JSON. Previous version of Gson threw a StackOverflowException on encountering any self-referential fields.
    The most visible impact of this is that Gson can now serialize Throwable (Exception and Error)

最佳答案

使用 Jackson 进行序列化:

public String serialize(Object obj, boolean pretty) {
    ObjectMapper mapper = new ObjectMapper();

    mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

    if (pretty) {
        return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
    }

    return mapper.writeValueAsString(obj);
}

关于java - 与 jackson 一起将对象转储到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767131/

相关文章:

java - 计算每个重叠间隔数的最佳 MapReduce 算法

json - 传递类的数据类型

java - Gson解码json

java - HTTP 状态 500 - 处理程序处理失败;嵌套异常是 java.lang.StackOverflowError

java - 将 JSON 解码为具有不同字段类型 jackson 的子类型

java - 通过单击异步 gridview 中的图像来防止在访问上下文操作菜单时重新加载 Activity

java - 如何正确关闭 HikariCP 连接池

java - Android 中转换位图中的像素数组

java - 如何使用 JSON 动态创建 POJO?

java - Spring Boot 的日期格式不起作用