java - 如何构造枚举不区分大小写?这样当我将 json 转换为类对象时,它看不到对象的情况
问题描述
我想拥有我所有的枚举对象资本。如何使它不区分大小写。
HTTP 正文到 JSON 节点,然后节点到类对象
JsonNode asJson = request().body().asJson();
WhatsappIncomingMessageVO requestVO = JsonParserUtils.fromJson(asJson, WhatsappIncomingMessageVO.class);
json有小写字符串“位置”,我想用下面枚举的位置映射该类包含一个枚举,它是:
public enum WhatsAppMessageType {
TEMPLATE("TEMPLATE"),
TEXT("TEXT"),
IMAGE("image"),
VIDEO("video"),
AUDIO("audio"),
@JsonProperty("json")
LOCATION("location");
解决方案
如果您使用的是杰克逊……我认为是的,有多种解决方案
1. 对您的@JsonProperty 使用注释:
@JsonAlias({"location", "LOCATION", "Location"})
2.编写自定义JsonDeserializer:
有了JsonDeserializer
你可以实现任何你想要的逻辑。
3.为您的字段使用@JsonFormat注释:
@JsonFormat(with = JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES)
4. 以编程方式为所有字段设置格式:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
推荐阅读
- laravel - 如何使用 laravel 获取连续 6 个月没有报告的用户?
- javascript - 有什么方法可以根据已签出产品标题中的关键字将客户重定向到链接?
- ionic-framework - Ionic 4 可滑动标签在滑动时出错
- three.js - 三 动态更新 ConvexGeometry
- c++ - 加入线程如何影响主线程中的执行顺序?
- android - SeekBarPreference seekBarIncrement
- google-apps-script - 我可以使用应用程序脚本禁用拼写检查和大写吗?
- javascript - java-script Catch 块在 promise 的 fetch api 响应中不起作用
- javascript - 我想在甜蜜警报中单击我的按钮时加载一些功能
- php - 遇到未捕获的异常 - ParseError