java - 使用 JoiObject Mapper 时出现问题

标签 java json jackson objectmapper jackson2

我们正在使用 JoiObjectMapper 将 POJO 类转换为 Json 字符串。 jackson 版本:2.8.x 以下是对象映射器配置:


import com.amazon.jacksonion.JoiObjectMapper;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.datatype.joda.JodaModule;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;


    public static ObjectMapper createObjectMapper() {        
        ObjectMapper mapper = new JoiObjectMapper();

        mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

        mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);

        mapper.enable(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY);

        mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);

        mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

        mapper.registerModule(new JodaModule());

        mapper.registerModule(new JavaTimeModule());

        SimpleModule module = new SimpleModule();

        module.addSerializer(new JavaUtilDateSerializer());
        mapper.registerModule(module);
return mapper;
}

我们使用objectMapper.writeValueAsString(object);方法将POJO转换为Json。

@Data
public class POJO {
@JsonProperty("a")
private String a;

@JsonProperty("b")
private String b;

}

问题:在转换为字符串时,对象映射器会从 Json 键值中删除双引号。

实际输出:

{
 a : "abc",
 b : "cde"
} 

预期输出:

{
   "a" : "abc",
   "b" : "cde"
}

我们需要带双引号的 json。有人可以帮助我们这里缺少什么吗?

最佳答案

我认为您正在寻找 boolean 属性JsonGenerator.Feature.QUOTE_FIELD_NAMES。如果我没记错的话,几年前默认情况下这是真的。也许现在情况已经改变了。尝试设置truefalse看看是否有效。

关于java - 使用 JoiObject Mapper 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61110037/

相关文章:

java - Java 中的井字游戏

java - Spring Boot 不记名 token 身份验证给出 401

PHP PDO循环遍历SQL结果只显示最后一个

java - 有没有办法避免 Jackson 序列化未获取的惰性属性

java - 如何告诉 jackson 将 "null"字符串反序列化为空文字?

java - JPA 一对多 : List vs Set

java - 我怎样才能在java中写入字节缓冲区?

php - Zend Json 编码和在 javascript 中的使用

javascript - JSON 对象与 Javascript 对象

java - Jackson XmlMapper 在将 XML 写入文件时强制使用小写标记名称