【问题标题】:Serialize object as Map instead of String using Jackson databind?使用 Jackson 数据绑定将对象序列化为 Map 而不是 String?
【发布时间】:2020-10-31 11:34:18
【问题描述】:

当您想将对象序列化为 JSON 字符串时,通常会执行以下操作:

String json = objectMapper.writeValueAsString(myObject);

我想知道是否可以将对象直接序列化为java.util.Map 而不是字符串? IE。像这样的东西(伪代码):

String json = objectMapper.writeValueAs(myObject, new TypeReference<Map<String,Object>>() {});

我知道我可以先将对象序列化为字符串,然后将其反序列化为Map&lt;String,Object&gt;,但我想问是否有办法做到这一点首先序列化为字符串?

我使用的是 Jackson 2.11.1。

【问题讨论】:

  • 您可能在查找搜索结果时遇到了一些麻烦,因为根据定义,序列化是转换为单个字节流,例如 Stringbyte[],而不是像这样的结构化对象Map。如答案所示,您只是在寻找“转换”。

标签: java json serialization jackson jackson-databind


【解决方案1】:

您可以使用ObjectMapper的convertValue方法将Object转换为Map

Map<String, Object> map = objectMapper.convertValue(myObject, Map.class);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    相关资源
    最近更新 更多