Jackson 配置 ObjectMapper_jackson objectmapper 配置_shangboerds的博客-程序员秘密

技术标签: Jackson  

– Start

点击此处观看本系列配套视频。


配置日期格式

默认情况下,Jackson 会将日期转成 long 值,我们也可以设置日期格式,将日期转成字符串,下面是一个简单的例子。

package shangbo.jackson.demo5;

import java.text.SimpleDateFormat;
import java.util.Date;

import com.fasterxml.jackson.databind.ObjectMapper;

public class App {
	public static void main(String[] args) throws Exception {
		// 实例化 ObjectMapper 对象
		ObjectMapper objectMapper = new ObjectMapper();
		
		// 设置日期格式
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		objectMapper.setDateFormat(dateFormat);

		// 将对象转成 json
		String json = objectMapper.writeValueAsString(newPerson());
		System.out.println(json);

		// 将 json 转成对象
		Person shangbo = objectMapper.readValue(json, Person.class);
		System.out.println(shangbo);
	}

	private static Person newPerson() {
		Person shangbo = new Person();
		shangbo.setFirstname("Bo");
		shangbo.setLastname("Shang");
		shangbo.setBrithday(new Date());
		
		return shangbo;
	}
}

忽略未知字段

通常 JSON 消息和 Java 类的字段必须相对应,否则解析 JSON 会报错,当然我们也可以通过配置使它不报错。

package shangbo.jackson.demo6;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

public class App {
	public static void main(String[] args) throws Exception {
		// 实例化 ObjectMapper 对象
		ObjectMapper objectMapper = new ObjectMapper();
		objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); // 忽略未知字段

		// json 消息
		String json = "{\"firstname\":\"Bo\",\"lastname\":\"Shang\",\"brithday\":\"2019-05-25\"}";

		// 将 json 转成对象,忽略 brithday
		Person shangbo = objectMapper.readValue(json, Person.class);
		System.out.println(shangbo);
	}
}

更多配置详见 DeserializationFeature 和 SerializationFeature

– 更多参见:Jackson 精萃
– 声 明:转载请注明出处
– Last Updated on 2019-05-25
– Written by ShangBo on 2019-05-25
– End

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shangboerds/article/details/90543656

智能推荐

排错思想_排错思维_angelo_gs的博客-程序员秘密

作为一名系统工程师,排错是工作过程中经常会遇到的内容,而需要排错的对象往往是千奇百怪,各种各样都有。系统工程师被誉为“什么都懂的人”,因此,一旦发生问题,往往就成为了第一个被想到的人。相信,广大一线运维工程师都有这样的经历。无疑,排错是需要技巧的。因为这项工作不仅需要很好的逻辑思维能力和丰富的工作经验,同时还需要使用正确的方式,合理的行为,正确的过程。我曾经面试过、管理过很多系统工程师,也教过很多学生。在工作中我发现很多新手对于如何排错往往不那么在行。事实上,在经过无数次排错工作之后,我深深的感..

Git连接GitLab远程仓库_git远程连接gitlab_戴国进的博客-程序员秘密

1、简介远程仓库是指托管在网络上的项目仓库,现在互联网上有很多项目托管平台,比如github、gitlab等。为了不公开自己项目代码,可以在自己的服务器上搭建自己的项目仓库,最常见的是搭建GitLab。本地Git与远端服务器GitLab之间连接方式主要分为:SSH方式和HTTP方式。HTTP方式:这种方式要求project在创建的时候只能选择“Public”公开状态,Private和Internal私有模式下不能使用http方式进行连接,如果考虑到安全性必须进行安全设置。SSH方式:这是一种相

uni-app开发经验分享十三:实现手机扫描二维码并跳转全过程_林恒smileZAZ的博客-程序员秘密

最近使用 uni-app 开发 app ,需要实现一个调起手机摄像头扫描二维码功能,官网API文档给出了这样一个demo:// 允许从相机和相册扫码uni.scanCode({ success: function (res) { console.log('条码类型:' + res.scanType); console.log('条码内容:' ...

Fedora32 kernel源码包安装升级过程遇到的问题_failed to generate btf for vmlinux_Matrix-bystander的博客-程序员秘密

kernel源码安装过程在上一篇文章中Fedora32 kernel源码包安装升级 从linux-5.6.6升到linux-5.8.7问题不是按kernel的安装顺序写的,所有问题都是从操作记录中摘抄出来的,请针对问题内容查看解决处理方法问题一:Unable to find the ncurses package.* Install ncurses (ncurses-devel or libncurses-dev* You may also need to install pkg-conf

16G内存的iPhone手机能扩容?是真的 暴力拆机失质保! 值得吗?_gwo26488的博客-程序员秘密

近日,一则关于“一种升级苹果存储容量的服务在网络上遍地开花,商家声称只需要不到1小时,就能将16G的iPhone升级到128G,花费仅580元左右”的新闻吸引了很多果粉的目光。“如果真能这么便宜就升级,那可真好!”16G内存的iPhone手机存储量小,是很多果粉的共同感受,而买64G或128G版本则要多支付上千元。昨日,长春晚报记者走访中了解到,目前我市大部分手机维修店仍不能完成为16G内存的iP

sap客户主数据bapi_SAP 各模块常用的BAPI_weixin_39836943的博客-程序员秘密

*&---------------------------------------------------------------------**& Form FRM_CHANGE_SALESORDER*&---------------------------------------------------------------------**text*---...

随便推点

合并K个排序链表_Ace-huang的博客-程序员秘密

问题:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6题解:做这个题的时候,我们肯定做过合并两个排序链表噻,代码下面贴出来了的。这个题其实就是变向的做合并2个排序链表,只是看你...

redis key,string,hash,list,set,zset指令汇总_redis 根据key get list_循序0010的博客-程序员秘密

一,Key(键)keys * 查看当前库所有的key,还有匹配模式:? []del key1 key2 key3 成功返回1 ,否则返回0expire key 30 设置key生存时间30s,以秒为单位ttl key 查看key还有多少生存时间pexpire key milliseconds 以毫秒为单位设置 key 的生存时间,pttl key 查询剩下微秒时间expireat k

图片灰度化原理与实现(java)_weixin_34391854的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准>>> ...

2013年工作中遇到的20个问题:281-300_小雷FansUnion的博客-程序员秘密

281.MySQL的JDBC的URL配置有个参数zeroDateTimeBehavior。jdbc:mysql://ip:3306/demo?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"zeroDateTimeBehavior=convertToNull"这个...

oracle ora-24247 ACL,配置ACL报ORA-24247的解决方法_来自獐子岛的扇贝的博客-程序员秘密

前言:在通过Oracle 11往外部发送邮件的时候,ORA-24247的错误,详细的错误错误信息如下:ERROR at line 1:ORA-24247: network access denied by access control list (ACL)ORA-06512: at "SYS.UTL_TCP", line 17ORA-06512: at "SYS.UTL_TCP", line 24...