fastjson/gson 反序列化如何忽略大小写

最近掉别人接口,遇到一个很奇葩的问题,返回的字段里面,有可能大写,也有可能小写,举例如下

        String jsonString1 = "{\"NAME\":\"张三\"}";
        String jsonString2 = "{\"name\":\"张三\"}";

实体类如下

public class Student {
    
    private String name;
}
···
需求:我现在要将上述的两个字符串,都能反序列化成下面的实体类对象里面

  您是不是可以在您接收后,按您的想法用字符串方法处理成统一的大(小)写字段,您的后续就是一致的啰。



import com.alibaba.fastjson.parser.Feature;

// 设置忽略大小写
JSON.DEFAULT_PARSER_FEATURE |= Feature.IgnoreAutoType.getMask();

有两种方法
第一种 使用注解:在要序列化和反序列化的类中,可以使用@JSONField注解来指定属性的序列化和反序列化配置。

   @JSONField(name = "name", alternateNames = {"name", "NAME"})
    private String name;

第二种全局配置, 代码如下:

 public static void main(String[] args) {
        String jsonString1 = "{\"NAME\":\"张三\"}";
        String jsonString2 = "{\"name\":\"张三\"}";

        int feature = JSON.DEFAULT_PARSER_FEATURE;
                feature |= Feature.IgnoreAutoType.getMask();
        Test test = JSON.parseObject(jsonString1, Test.class, feature);
        Test test2 = JSON.parseObject(jsonString2, Test.class, feature);
        System.out.println(test);
        System.out.println(test2);
    }

如果有帮助,麻烦点一个被采纳~谢谢。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^