Jackjson使用
- 一、Java对象 ⇒ JSON
- 1.1 转换方式
- 1.2 注解使用
- 1.3 普通对象转换
- 1.4 复杂Java对象转换
- 二、JSON ⇒ Java对象
- 2.1 JSON转换为Java对象
- 2.2 JSON转换为Java集合对象
创建Person.java类,实现setter、getter方法,此处不在赘述。
一、Java对象 ⇒ JSON
1.1 转换方式
首先创建转换对象ObjectMapper
ObjectMapper mapper = new ObjectMapper();
该对象主要有两个转换方法
第一种方式:将对象转为json字符串:
String json = mapper.writeValueAsString(p1);
输出结果
{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:1553666950369}
第二种方式:
mapper.writeValue(参数1,p1);
关于参数1
File:将obj对象转换为json字符串,并保存到指定的文件中
Write:将obj对象转换为json字符串,并将json填充到字符输出流中
OutputStream:将obj对象转换为json字符串,并将json填充到字节输出流中
比如:
将JSON字符串数据写入到test.txt文件中:
mapper.writeValue(new File("/Users//Desktop/test.txt"), p1);
1.2 注解使用
@JsonIgnore:排除属性
@JsonIgnore
private Date birthday;
转换最终的JSON字符串中,不会有birthday键值对。
@JsonFormat:属性值格式化
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthday;
转换结果:
{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:23:33”}
1.3 普通对象转换
见1.1
1.4 复杂Java对象转换
List集合转换为JSON字符串:
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(list);
System.out.println(json);
输出结果:
[{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:25:23”},{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:25:23”},{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:25:23”}]
Map集合转换为JSON字符串
public void test4() throws Exception {Person p1 = new Person();p1.setName("Alex");p1.setAge(21);p1.setGender("男");p1.setBirthday(new Date());// 创建JavaBean对象Map<String, Object> map = new HashMap<String, Object>();
// map.put("name", "Alex");
// map.put("age", "1111");
// map.put("gender", "xxx");map.put("k1", p1);map.put("k2", p1);map.put("k3", p1);// 转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(map);System.out.println(json);
}
输出结果:
{“k1”:{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:30:08”},“k2”:{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:30:08”},“k3”:{“name”:“Alex”,“age”:21,“gender”:“男”,“birthday”:“2019-03-27 06:30:08”}}
二、JSON ⇒ Java对象
2.1 JSON转换为Java对象
String json = "{\"name\":\"Alex\",\"age\":21,\"gender\":\"男\",\"birthday\":\"2019-03-27 06:01:54\"}";
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json, Person.class);
System.out.println(person);
2.2 JSON转换为Java集合对象
String json = "[{\"name\":\"Alex\",\"age\":21,\"gender\":\"男\",\"birthday\":\"2019-03-27 06:01:54\"}," +" {\"name\":\"Alex\",\"age\":21,\"gender\":\"男\",\"birthday\":\"2019-03-27 06:01:54\"}," +" {\"name\":\"Alex\",\"age\":21,\"gender\":\"男\",\"birthday\":\"2019-03-27 06:01:54\"}]\n";ObjectMapper mapper = new ObjectMapper();
List<Person> list = mapper.readValue(json, new TypeReference<List<Person>>() {});
for (Person p : list) {System.out.println(p);
}
输出结果:
Person{name=‘Alex’, age=21, gender=‘男’, birthday=Wed Mar 27 14:01:54 CST 2019}
Person{name=‘Alex’, age=21, gender=‘男’, birthday=Wed Mar 27 14:01:54 CST 2019}
Person{name=‘Alex’, age=21, gender=‘男’, birthday=Wed Mar 27 14:01:54 CST 2019}
Jackjson使用相关推荐
- JackJson 使用记录
Map<String,Object> map= new HashMap();map.put("ssss","sadsad");// 定义JackJs ...
- fastJson、JackJson以及Gson序列化对象与get、set以及对象属性之间的关系
众所周知,平时开发过程中将对象序列化成json字符串常用的工具类一般就三种:fastJson.Gson.Jackjson,但是三种工具类在将对象进行序列化时与对象的get.set.对象属性之间的关系你 ...
- jackson 驼峰注解_springboot jackjson驼峰转下划线
有如下几种方法 1.通过ObjectMapper设置 mapper.setPropertyNamingStrategy(com.fasterxml.jackson.databind.PropertyN ...
- 使用JackJSON 流式API 创建JSON串【学习记录】
教程网址:Jackson流式API 目标JSON串 原始JSON串 核心代码 思路:先将原始JSON串生成对应的对象,获取到其数据 package com.run.runlpwebdemo.utils ...
- 关于JackJson接收前端UTC格式化报错SON parse error: Cannot deserialize value of type `java.util.Date` from String
#解决方式 在格式化的字段上加上注解 @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",timezone = "G ...
- JackJson解析json的字符串格式
从前台获取了一个xml,然后解析xml的属性的时候,其属性值是一个json的String类型.所以在解析json的时候,给出的问题是: 1,不管什么对象类型,根据json的构造,根据的key值,去取对 ...
- ssh框架jackjson升级
运维ssh框架老项目,存在Jackson-databind任意文件读取漏洞, CVE编号: CVE-2020-8840 影响版本: 2.x Jackson-databind < 2.9.10.3 ...
- Java json转Map,转bean,转Listbean
引用jackson /** * json转Map,转bean,转List<bean> by http://blog.csdn.net/21aspnet/ * 需要jackjson jar包 ...
- controller是什么意思_光谈理论有什么意思,附源码带大家实操SpringBoot
什么是Spring boot Spring boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.(自动定义了一些配置) spring boot其 ...
最新文章
- 招银网络笔试java_2020招银网络科技校园招聘常见问题
- python环境_python环境搭建教程
- java掌握_掌握Java 11的Constantdynamic
- HTTP(1)---HTTP 工作原理
- 三、Java基础工具(1)_常用类——数学相关类
- combox简单用法
- OpenCasCade – 贴纹理
- 30+免费快速启动工具软件下载
- React.js 小书 阅读笔记3
- wps 云服务器登录_WPS云服务使用协议
- pythonhistogram教程_Plot Histogram in Python
- scala当中的文件操作、网络请求和隐式转换
- 基于Ubuntu20.04运行OP-TEE_3.17.0_QEMU_V8的环境搭建
- 红米AX6S路由器刷OpenWrt固件,实现软路由功能,科学-上网-网速度起飞
- 护眼灯的标准是什么?护眼台灯国家标准给你答案
- mac安装配置maven
- Linux 内核协议栈的 TSO、GSO
- 关于ASMM和AMM
- java8个基本类型
- AV终结者病毒大全及防范
热门文章
- redis-集群安装(2)变两重冗余为三重
- 微信扫码点餐小程序之《扫码功能的实现》2020/03/05
- 中文字体在 CSS 中的写法
- 在线刷题题库微信小程序开发制作功能介绍
- 系统无法修改时间和日期解决办法
- 淘宝客参数spm,就是指通过这个技术跟踪推广的商品订单
- 字王x2ttf字库制作软件发布:“全民造字时代来临,会涂鸦,就会truetype”
- AfterEffect插件-常规功能开发-改变渲染输出位置-js脚本开发-AE插件
- RK3126-4.4SDK修改电池百分比
- 高德地图发布中国高速公路出行大数据报告:2017年假期高速拥堵里程同比2016上升22.5%