当前位置: 首页 > 知识库问答 >
问题:

如何构造不区分大小写的枚举?因此,当我将json转换为类对象时,它不会看到对象的情况

单于骁
2023-03-14

我想拥有我所有的枚举对象资本。如何使其不区分大小写。

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");

共有2个答案

单昊穹
2023-03-14
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS, true);

如果希望枚举值不区分大小写,则需要这样做。

景麒
2023-03-14

如果你用的是杰克逊。。。我认为是的,有多种解决方案

@JsonAlias({"location", "LOCATION", "Location"}) 

使用JsonDeserializer,您可以实现所需的任何逻辑。

@JsonFormat(with = JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES) 
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
 类似资料:
  • 问题内容: 我正在使用org.json库将Object转换为Json格式。请检查以下代码片段。 它显示了这样的输出: 它显示为空白并添加了卷曲基数。这是什么意思?有人遇到过这个问题吗? 问题答案: 首先,我强烈建议您不要使用此库(org.json),这是一个非常古老且不受支持的库(据我所知)。我建议杰克逊或格森。 但是,如果您确实需要JSONObject,则可以将getter添加到枚举中: 序列化

  • 我想为任何枚举对象创建通用方法,它将检查枚举是否具有指定的值名称,但作为类型对象,我无法使用方法。为什么? 有没有办法从类型对象中获取值? 我需要这样的方法来检查配置中的值是否是myEnum的有效字符串。valueOf(字符串) 因为如果给定的字符串错误,那么它将抛出一个异常(我不想要它)。 我希望我的方法如下所示: 但是没有方法,如何正确创建这个方法?

  • 例如:Date值为:“dateCollected”:fri Jul 07 00:00:00 IST 1989, 但它只服用星期五而不是整个日期。

  • 我有来自一个API的数据,看起来如下所示 使用reverfit,我尝试使用下面的代码将它转换为一个对象。为了测试,它目前被提供了一个静态变量,如邮政编码,这是已知的工作。 服务类。 地址类 位置类 地址接口 在使用调试器时,我看到调用跳过onFailure和onResponse函数,只返回仍然为空的addresses。我甚至在这两个函数中都放入了print语句,但终端中都没有显示这两个函数,以确认

  • 我有一个JSON对象,我正在将它转换成一个,并在这里进行一些处理。稍后,我想将相同的缓冲区数据转换为有效的JSON对象。 我的工作节点V6.9.1 下面是我尝试过的代码,但当我转换回JSON并且无法打开此对象时,我得到了。 所以我试着用检查的方式打印整个物体 如果我试着像数组一样读取它 我试图解析它也抛出SynTaxError:意外令牌o在JSON在位置2 我需要像我创建的那样将其视为真实对象(我

  • 问题内容: 我从远程REST服务器读取了JSON对象。此JSON对象具有Typescript类的所有属性(通过设计)。如何将收到的JSON对象转换为var类型? 我不想填充一个打字稿变量(即有一个采用此JSON对象的构造函数)。它很大,因此要按子对象和按属性逐个复制所有内容,这将花费大量时间。 问题答案: 您不能简单地将Ajax请求中的原始JavaScript结果转换为原型JavaScript /