为了账号安全,请及时绑定邮箱和手机立即绑定

Jackson 将 POJO 序列化为 JS 对象

Jackson 将 POJO 序列化为 JS 对象

偶然的你 2022-09-07 21:07:26
class Foo {  String name = "Bar";}使用 序列化上述对象将返回 JSON 对象,如下所示:ObjectMapper().convertValue(foo, JsonNode::class){  "name": "Bar"}然而,我想要的结果是:{  name: "Bar"}  我尝试过自定义序列化器,但它总是将键写入字符串。有没有办法使用Jackson或其任何注释以这种格式序列化我的POJO,以避免替换字符或自己构建字符串。
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

除了您的“JSON”将不再有效之外,您还可以在.JsonGenerator.Feature.QUOTE_FIELD_NAMESObjectMapper


ObjectMapper mapper = new ObjectMapper()

        .disable(JsonGenerator.Feature.QUOTE_FIELD_NAMES);

结果将是:mapper.writeValueAsString(new Foo())


{name:"Bar"}

要启用漂亮的打印,您可以使用以下任一方法:


ObjectMapper mapper = new ObjectMapper()

        .disable(JsonGenerator.Feature.QUOTE_FIELD_NAMES)

        .enable(SerializationFeature.INDENT_OUTPUT);

或者在输出步骤中使用以下命令:


String result = mapper

        .writerWithDefaultPrettyPrinter()

        .writeValueAsString(new Foo());

在这两种情况下,结果都是:


{

  name : "Bar"

}


查看完整回答
反对 回复 2022-09-07
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信