java - 使用 ObjectMapper 更改字段大小写

标签 java json jackson

我想我需要创建一个专家 ObjectMapper 并且找不到任何示例代码来启动该过程。

JSON 的创建者使用 .Netpublic 属性,因此使用带有大写首字母的字段名称。我正在将 JSON 解析为 POJO,因此我想使用小写首字母。

最后:

    public class Facet
    {
        public string Name { get; set; }
        public string  Value { get; set; }
    }

因此,我必须有:

    public class Facet {
        public String Name;
        public String Value;
    }

我更喜欢:

    public class Facet {
        public String name;
        public String value;
    }

这可以用 ObjectMapper 完成吗?

最佳答案

您的第一个问题可以通过 @JsonProperty 注释非常简单地解决:

// java-side class
public class Facet
{
    @JsonProperty("Name")
    public String name;

    @JsonProperty("Value")
    public String value;
}

现在 ObjectMapper 将匹配不同大小写的字段名称。如果你不想在你的类中添加注释,你可以创建一个 Mix-in 类来代替你的Facet:

public class FacetMixIn
{
    @JsonProperty("Name")
    public String name;

    @JsonProperty("Value")
    public String value;
}

objectMapper.getDeserializationConfig().addMixInAnnotations(Facet.class, FacetMixIn.class);

这将实现相同的效果,而无需在 Facet 类中添加额外的注释。

关于java - 使用 ObjectMapper 更改字段大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12427167/

相关文章:

Java 图像/ map 对象

java - JPA/Hibernate 代理未获取真实对象数据,将所有属性设置为空

c - 在 C 中将大括号放在字符串中

Python:在 json 中强制精度 float ?

java - Jackson MappingException 与 Websphere Application Server

java - 将数据从 PHP 传输到 Java

java - 使用 Java 求解数学方程

java - 使用 GET REST 调用提取以 json 格式返回的不同值

scala - 使用 json4s 时如何设置 Jackson 解析器功能?

java - Spring/JPA - 最佳查询方式