iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ObjectMapper怎么忽略字段大小写
  • 894
分享到

ObjectMapper怎么忽略字段大小写

2023-06-20 11:06:49 894人浏览 八月长安
摘要

本篇内容主要讲解“ObjectMapper怎么忽略字段大小写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ObjectMapper怎么忽略字段大小写”吧!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怎么忽略字段大小写”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: ObjectMapper怎么忽略字段大小写

本文链接: https://www.lsjlt.com/news/296521.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • ObjectMapper怎么忽略字段大小写
    本篇内容主要讲解“ObjectMapper怎么忽略字段大小写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ObjectMapper怎么忽略字段大小写”吧!ObjectMapper 忽略字段大小写...
    99+
    2023-06-20
  • ObjectMapper 如何忽略字段大小写
    ObjectMapper 忽略字段大小写 核心代码: ObjectMapper mapper = new ObjectMapper(); mapper.configure(Des...
    99+
    2024-04-02
  • mongodb怎么查询忽略大小写
    在MongoDB中,可以使用正则表达式来实现忽略大小写的查询。具体方法如下: 使用正则表达式查询:可以使用$regex操作符来指定...
    99+
    2024-04-03
    mongodb
  • PHP 比较字符串时忽略大小写
    本篇文章介绍如何在 PHP 中忽略字符大小写。 PHP 比较字符串时忽略大小写 有时在比较两个字符串时,我们需要忽略两个字符串的大小写。 PHP 提供了一个内置方法 strcasecmp() ...
    99+
    2024-02-27
  • python 字符串比较忽略大小写的方法
    A.正则表达式,使用IGNORECASE标志 >>> import re >>> m = re.search('multi', 'A mUltiCased string', re.IGNOREC...
    99+
    2023-01-31
    大小写 字符串 方法
  • linux 环境下mysql忽略大小写
    linux 环境下mysql忽略大小写 ...
    99+
    2024-04-02
  • php如何忽略大小写的进行字符串替换
    这篇文章主要介绍php如何忽略大小写的进行字符串替换,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!忽略大小写替换的方法:1、使用str_ireplace()函数,语法“str_ireplace(查找值,替换值,字符串...
    99+
    2023-06-15
  • ElasticSearch实现忽略大小写模糊查询
    1.引入依赖 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-...
    99+
    2024-04-02
  • 如何设置Bash Shell中忽略大小写
    这篇文章主要讲解了“如何设置Bash Shell中忽略大小写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何设置Bash Shell中忽略大小写”吧!/.inputrc 设置:代码如下:#...
    99+
    2023-06-09
  • java语言忽略大小写的方法有哪些
    在Java语言中,忽略大小写有以下几种方法:1. equalsIgnoreCase()方法:使用该方法可以比较两个字符串是否相等,而忽略字符串的大小写差异。例如:```javaString str1 = "Hello";String s...
    99+
    2023-08-09
    java
  • Gson序列化指定忽略字段的三种写法详解
    目录1. transient关键字 2. expose注解 3. 自定义排查策略ExclusionStrategy 在我们日常使用json序列化框架过程中,经常会遇到在输出json字...
    99+
    2024-04-02
  • mybatis 实现字段大小写赋值
    目录mybatis 字段大小写赋值遇到一个问题在使用mybatis的请务必注意字段的大小写问题insert时务必注意mapper的返回值类型mybatis 字段大小写赋值 遇到一个问...
    99+
    2024-04-02
  • win7声音忽大忽小怎么办
    这篇文章将为大家详细讲解有关win7声音忽大忽小怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、打开开始菜单,在搜索框内输入“声音”,然后按下回车。二、在弹出的声音设置内,切换到“通信”选项卡,把...
    99+
    2023-06-28
  • Intellijidea代码提示忽略字母大小写和常用快捷键及设置步骤
    目录Intellij idea 代码提示忽略字母大小写和常用快捷键及设置一.设置代码忽略字母大小写步骤二.快速生成main方法设置三.快速生成输出语句System.out.print...
    99+
    2023-02-21
    idea 忽略字母大小写 idea常用快捷键 idea代码提示忽略字母大小写
  • oracle大写字母怎么转小写字母
    要将Oracle大写字母转换为小写字母,可以使用以下方法: 使用LOWER函数:在SQL查询中,可以使用LOWER函数来将Orac...
    99+
    2024-05-11
    oracle
  • mybatis实体类字段大小写及字段获取不到值问题
    目录mybatis实体类字段大小写及字段获取不到值问题解决办法推断mybatis下部分字段值无法获取(null)解决之前解决方法mybatis实体类字段大小写及字段获取不到值 问题 ...
    99+
    2024-04-02
  • Intellij idea代码提示忽略字母大小写和常用快捷键设置的方法是什么
    本篇内容介绍了“Intellij idea代码提示忽略字母大小写和常用快捷键设置的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2023-07-05
  • oracle大写字母转小写字母怎么实现
    在Oracle数据库中,您可以使用LOWER()函数来将大写字母转换为小写字母。以下是一个更详细的示例: 假设您有一个名为emplo...
    99+
    2024-03-13
    oracle
  • php中首字母小写怎么转大写
    这篇文章主要介绍“php中首字母小写怎么转大写”,在日常操作中,相信很多人在php中首字母小写怎么转大写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中首字母小写怎么转大写”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • Mybatis Plus查询时sql字段名大小写报错怎么解决
    这篇文章主要介绍“Mybatis Plus查询时sql字段名大小写报错怎么解决”,在日常操作中,相信很多人在Mybatis Plus查询时sql字段名大小写报错怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作