Jackson 将 POJO 序列化为 JS 对象

class Foo {

  String name = "Bar";

}

使用 序列化上述对象将返回 JSON 对象,如下所示:ObjectMapper().convertValue(foo, JsonNode::class)


{

  "name": "Bar"

}

然而,我想要的结果是:


{

  name: "Bar"

}  

我尝试过自定义序列化器,但它总是将键写入字符串。有没有办法使用Jackson或其任何注释以这种格式序列化我的POJO,以避免替换字符或自己构建字符串。


偶然的你
浏览 91回答 1
1回答

一只斗牛犬

除了您的“JSON”将不再有效之外,您还可以在.JsonGenerator.Feature.QUOTE_FIELD_NAMESObjectMapperObjectMapper 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"}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java