我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ObjectMapper怎么忽略字段大小写

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ObjectMapper怎么忽略字段大小写

本篇内容主要讲解“ObjectMapper怎么忽略字段大小写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ObjectMapper怎么忽略字段大小写”吧!

ObjectMapper 忽略字段大小写

核心代码:

ObjectMapper mapper = new ObjectMapper();mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);

例子:

import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.databind.JsonMappingException;import com.fasterxml.jackson.databind.MapperFeature;import com.fasterxml.jackson.databind.ObjectMapper; public class Test{    public static void main(String[] args) {  try {   A a = new A();   a.lastname = "jack";   ObjectMapper mapper = new ObjectMapper();   mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);   mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);   A2 convertValue = new A2();     mapper.updateValue(convertValue, a);   System.out.println(convertValue);  } catch (JsonMappingException e) {   e.printStackTrace();  } }  public static class A{  String lastname;   public String getLastname() {   return lastname;  }   public void setLastname(String lastname) {   this.lastname = lastname;  }  }  public static class A2{  String lastName;   public String getLastName() {   return lastName;  }   public void setLastName(String lastName) {   this.lastName = lastName;  }   @Override  public String toString() {   return "A2 [lastName=" + lastName + "]";  }    }}

ObjectMapper 的一些坑

相信做过Java 开发对这个类应该不陌生,没错,这个类是jackson提供的,主要是用来把对象转换成为一个json字符串返回到前端,

现在大部分数据交换都是以json来传输的,所以这个很重要,那你到底又对这个类有着有多少了解呢,下面我说一下我遇到的一些坑

首先,先把我要说的几个坑需要设置的属性贴出来先

ObjectMapper objectMapper = new ObjectMapper();    //序列化的时候序列对象的所有属性  objectMapper.setSerializationInclusion(Include.ALWAYS);    //反序列化的时候如果多了其他属性,不抛出异常  objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);    //如果是空对象的时候,不抛异常  objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);    //取消时间的转化格式,默认是时间戳,可以取消,同时需要设置要表现的时间格式  objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);  objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))

简单说一下这个类的基本用法,以下采用代码块加截图的形式来说明和部分文字件数

package com.shiro.test; import java.text.SimpleDateFormat;import java.util.Date; import com.fasterxml.jackson.annotation.JsonInclude.Include;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.SerializationFeature; public class Main2 { public static void main(String[] args) throws Exception{  ObjectMapper objectMapper = new ObjectMapper();  //序列化的时候序列对象的所有属性  objectMapper.setSerializationInclusion(Include.ALWAYS);  //取消时间的转化格式,默认是时间戳,可以取消,同时需要设置要表现的时间格式  objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);  objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));    Person person = new Person(1, "zxc", new Date());  //这是最简单的一个例子,把一个对象转换为json字符串  String personJson = objectMapper.writeValueAsString(person);  System.out.println(personJson);    //默认为true,会显示时间戳  objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true);  personJson = objectMapper.writeValueAsString(person);  System.out.println(personJson); }}

输出的信息如下

ObjectMapper怎么忽略字段大小写

objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)的作用

package com.shiro.test; import java.text.SimpleDateFormat;import java.util.Date; import com.fasterxml.jackson.annotation.JsonInclude.Include;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.SerializationFeature; public class Main2 {public static void main(String[] args) throws Exception{ObjectMapper objectMapper = new ObjectMapper();//序列化的时候序列对象的所有属性objectMapper.setSerializationInclusion(Include.ALWAYS);//如果是空对象的时候,不抛异常,也就是对应的属性没有get方法objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);Person person = new Person(1, "zxc", new Date()); String personJson = objectMapper.writeValueAsString(person);System.out.println(personJson);//默认是true,即会抛异常objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, true);personJson = objectMapper.writeValueAsString(person);System.out.println(personJson);}}

对应的person类此时为

package com.shiro.test; import java.util.Date; public class Person { private Integer id;private String name;private Date birthDate;//public Integer getId() {//return id;//}//public void setId(Integer id) {//this.id = id;//}//public String getName() {//return name;//}//public void setName(String name) {//this.name = name;//}//public Date getBirthDate() {//return birthDate;//}//public void setBirthDate(Date birthDate) {//this.birthDate = birthDate;//}@Overridepublic String toString() {return "Person [id=" + id + ", name=" + name + ", birthDate=" + birthDate + "]";}public Person(Integer id, String name, Date birthDate) {super();this.id = id;this.name = name;this.birthDate = birthDate;}public Person() {// TODO Auto-generated constructor stub}}

结果如下

ObjectMapper怎么忽略字段大小写

package com.shiro.test; import com.fasterxml.jackson.annotation.JsonInclude.Include;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.databind.ObjectMapper; public class Main2 {public static void main(String[] args) throws Exception{ObjectMapper objectMapper = new ObjectMapper();//序列化的时候序列对象的所有属性objectMapper.setSerializationInclusion(Include.ALWAYS);//反序列化的时候如果多了其他属性,不抛出异常objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);//Person person = new Person(1, "zxc", new Date()); //String personJson = objectMapper.writeValueAsString(person);//System.out.println(personJson);//注意,age属性是不存在在person对象中的String personStr = "{\"id\":1,\"name\":\"zxc\",\"age\":\"zxc\"}";Person person = objectMapper.readValue(personStr, Person.class);System.out.println(person);//默认为trueobjectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);person = objectMapper.readValue(personStr, Person.class);System.out.println(person);}}

执行后的结果如下

ObjectMapper怎么忽略字段大小写

这些便是这几个属性的作用所以,由于第一个比较简单我就这样说一下吧

Include.ALWAYS 是序列化对像所有属性

Include.NON_NULL 只有不为null的字段才被序列化

Include.NON_EMPTY 如果为null或者 空字符串和空集合都不会被序列化

然后再说一下如何把一个对象集合转换为一个 Java里面的数组

package com.shiro.test; import java.util.ArrayList;import java.util.Date;import java.util.List; import com.fasterxml.jackson.annotation.JsonInclude.Include;import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.JavaType;import com.fasterxml.jackson.databind.ObjectMapper; public class Main2 {public static void main(String[] args) throws Exception{ObjectMapper objectMapper = new ObjectMapper();//序列化的时候序列对象的所有属性objectMapper.setSerializationInclusion(Include.NON_DEFAULT);Person person1 = new Person(1, "zxc", new Date());Person person2 = new Person(2, "ldh", new Date());List<Person> persons = new ArrayList<>();persons.add(person1);persons.add(person2);//先转换为json字符串String personStr = objectMapper.writeValueAsString(persons);//反序列化为List<user> 集合,1需要通过 TypeReference 来具体传递值List<Person> persons2 = objectMapper.readValue(personStr, new TypeReference<List<Person>>() {});for(Person person : persons2) {System.out.println(person);}//2,通过 JavaType 来进行处理返回JavaType javaType = objectMapper.getTypeFactory().constructParametricType(List.class, Person.class);List<Person> persons3 = objectMapper.readValue(personStr, javaType);for(Person person : persons3) {System.out.println(person);}}}

到此,相信大家对“ObjectMapper怎么忽略字段大小写”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ObjectMapper怎么忽略字段大小写

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ObjectMapper怎么忽略字段大小写

本篇内容主要讲解“ObjectMapper怎么忽略字段大小写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ObjectMapper怎么忽略字段大小写”吧!ObjectMapper 忽略字段大小写
2023-06-20

mongodb怎么查询忽略大小写

在MongoDB中,可以使用正则表达式来实现忽略大小写的查询。具体方法如下:使用正则表达式查询:可以使用$regex操作符来指定正则表达式进行查询。在正则表达式中使用i标记来表示不区分大小写。db.collection.find({ fie
mongodb怎么查询忽略大小写
2024-04-03

PHP 比较字符串时忽略大小写

本篇文章介绍如何在 PHP 中忽略字符大小写。PHP 比较字符串时忽略大小写有时在比较两个字符串时,我们需要忽略两个字符串的大小写。 PHP 提供了一个内置方法 strcasecmp() 来比较两个字符串,同时忽略大小写。strcasecm
PHP 比较字符串时忽略大小写
2024-02-27

python 字符串比较忽略大小写的方法

A.正则表达式,使用IGNORECASE标志>>> import re>>> m = re.search('multi', 'A mUltiCased string', re.IGNORECASE)>>> bool(m)TrueB.在比较前
2023-01-31

忽略大小写差异SQL LOWER函数怎么做

在 SQL 中,要忽略大小写差异使用 LOWER 函数,你可以按照以下步骤操作:首先,确保你正在使用的数据库支持 LOWER 函数。大多数关系型数据库(如 MySQL、PostgreSQL、SQL Server 等)都支持此函数。使用 LO
忽略大小写差异SQL LOWER函数怎么做
2024-10-24

php如何忽略大小写的进行字符串替换

这篇文章主要介绍php如何忽略大小写的进行字符串替换,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!忽略大小写替换的方法:1、使用str_ireplace()函数,语法“str_ireplace(查找值,替换值,字符串
2023-06-15

PHP如何多字节支持正则表达式匹配忽略大小写

利用PHP的多字节支持,可以使用mb_ereg_match和mb_ereg_replace函数进行忽略大小写的正则表达式匹配。方法步骤包括:加载mbstring扩展,设置多字节字符编码,使用多字节正则表达式函数并添加"i"标志以忽略大小写。此方法允许处理不同语言的文本,并提高匹配的灵活性。建议使用UTF-8编码并注意性能影响。
PHP如何多字节支持正则表达式匹配忽略大小写
2024-04-02

Java如何多字节支持正则表达式匹配忽略大小写

本篇文章详细介绍了Java正则表达式如何支持多字节字符集匹配和大小写忽略。对于多字节字符,Java使用Unicode字符类和十六进制转义序列来匹配不同语言和文字系统的字符。大小写忽略是通过(?i)标志实现的,它指示正则表达式忽略大小写差异。示例代码展示了如何使用这些特性匹配多字节字符和执行大小写忽略匹配。
Java如何多字节支持正则表达式匹配忽略大小写
2024-04-02

Java如何多字节支持的替换正则表达式,忽略大小写

Java支持多字节字符的正则表达式替换,语法为p{name}匹配Unicode字符属性。忽略大小写时,使用(?i)修饰符。替换操作通过string.replaceAll(regex,replacement)完成。示例:忽略大小写替换多字节字母字符为“”,输出为“**万岁!”。注意:可使用Unicode字符代码指定单个多字节字符,编译正则表达式提升性能,必要时使用String.replaceFirst()替换第一个匹配项。
Java如何多字节支持的替换正则表达式,忽略大小写
2024-04-02

PHP如何多字节支持的替换正则表达式,忽略大小写

PHP提供多字节正则表达式支持,允许处理多字节字符和Unicode文本。使用mb_ereg_replace()或preg_replace()函数,并使用i标志忽略大小写。考虑目标字符集,使用正则表达式优化技巧,避免大量后向引用以避免性能问题。本文提供了具体示例,说明如何使用多字节正则表达式替换操作,处理不同语言的字符串。
PHP如何多字节支持的替换正则表达式,忽略大小写
2024-04-02

Intellijidea代码提示忽略字母大小写和常用快捷键及设置步骤

这篇文章主要介绍了Intellijidea代码提示忽略字母大小写和常用快捷键及设置步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-02-21

oracle大写字母怎么转小写字母

要将Oracle大写字母转换为小写字母,可以使用以下方法:使用LOWER函数:在SQL查询中,可以使用LOWER函数来将Oracle大写字母转换为小写字母。例如:SELECT LOWER(column_name) FROM table_na
oracle大写字母怎么转小写字母
2024-05-11

Intellij idea代码提示忽略字母大小写和常用快捷键设置的方法是什么

本篇内容介绍了“Intellij idea代码提示忽略字母大小写和常用快捷键设置的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!I
2023-07-05

oracle大写字母转小写字母怎么实现

在Oracle数据库中,您可以使用LOWER()函数来将大写字母转换为小写字母。以下是一个更详细的示例:假设您有一个名为employees的表,其中包含一个名为first_name的列存储员工的名字。如果您想将first_name列中的所
oracle大写字母转小写字母怎么实现
2024-03-13

php中首字母小写怎么转大写

这篇文章主要介绍“php中首字母小写怎么转大写”,在日常操作中,相信很多人在php中首字母小写怎么转大写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中首字母小写怎么转大写”的疑惑有所帮助!接下来,请跟
2023-06-29

Mybatis Plus查询时sql字段名大小写报错怎么解决

这篇文章主要介绍“Mybatis Plus查询时sql字段名大小写报错怎么解决”,在日常操作中,相信很多人在Mybatis Plus查询时sql字段名大小写报错怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
2023-06-21

c++怎么判断大小写字母

判断大小写字母:使用isalpha()判断字符是否是字母。使用isupper()判断字符是否是大写字母。使用islower()判断字符是否是小写字母。使用isupper()和islower()判断字符串中所有字符是否是大写或小写字母。使用t
c++怎么判断大小写字母
2024-05-14

python怎么判断字母大小写

在Python中,可以使用`isupper()`和`islower()`来判断字母的大小写。`isupper()`方法用于检查字母是否为大写字母,如果是大写字母则返回True,否则返回False。示例代码:```pythonletter =
2023-09-27

php字符串怎么将小写转为大写

php字符串小写转为大写的方法:1、使用strtoupper()函数,语法“strtoupper($string)”;2、使用mb_strtoupper()函数,语法“mb_strtoupper($string,$encoding)”。
2018-03-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录