使用 ObjectMapper 更改字段大小写

新手上路,请多包涵

我想我需要创建一个专家 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 来完成吗?

原文由 OldCurmudgeon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

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

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

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

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

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

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

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

这将实现相同的目的,而不需要在您的 Facet 类中添加额外的注释。

原文由 pb2q 发布,翻译遵循 CC BY-SA 3.0 许可协议

无需注释每个字段,Jackson ObjectMapper 可以配置为使用内置或自定义 PropertyNamingStrategy ,以在 Java 属性/字段名称和 JSON 元素名称之间应用一致的转换。

例如:

 myObjectMapper.setPropertyNamingStrategy(PascalCaseStrategy);

原文由 Programmer Bruce 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏