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"
}
添加回答
举报
0/150
提交
取消