java使用jackson生成和解析JSON
java使用jackson生成和解析JSON
1.导包

2.生成json和解析json
package test; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import domain.Person;
import org.junit.Test; import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*; /**
* 2. Java对象转换JSON
* 1. 使用步骤:
* 1. 导入jackson的相关jar包
* 2. 创建Jackson核心对象 ObjectMapper
* 3. 调用ObjectMapper的相关方法进行转换
* 1. 转换方法:
* * writeValue(参数1,obj):
* 参数1:
* File:将obj对象转换为JSON字符串,并保存到指定的文件中
* Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
* OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
* * writeValueAsString(obj):将对象转为json字符串
* 使用jackSon生成解析jsom
* @date 2019/10/5 15:09
*/
public class Test1 {
@Test//生成json
public void test() throws IOException {
Person p=new Person();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
ObjectMapper mapper=new ObjectMapper();//先创建objmapper的对象
String string = mapper.writeValueAsString(p);
/* *mapper.writeValue(参数1,obj): 1.File:将obj对象转换为JSON字符串,并保存到指定的文件中
* 2.Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
* 3.OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中*/
System.out.println(string);//{"name":"解析json","age":13,"gender":"男"} // 1.File:将obj对象转换为JSON字符串,并保存到指定的文件中
mapper.writeValue(new File("D://a.txt"),p);
// 2.Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
mapper.writeValue(new FileWriter("D://b.txt"),p);
}
@Test//json注解
public void test1() throws JsonProcessingException {
Person p=new Person();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(new Date());
ObjectMapper mapper=new ObjectMapper();//先创建objmapper的对象
String string = mapper.writeValueAsString(p);
System.out.println(string);
}
@Test//json复杂转换
public void test2() throws JsonProcessingException {
Person p=new Person();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(new Date()); Person p1=new Person();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(new Date()); Person p2=new Person();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(new Date());
//集合
List<Person> PS=new ArrayList<>();
PS.add(p);
PS.add(p1);
PS.add(p2);
ObjectMapper mapper=new ObjectMapper();//先创建objmapper的对象
String string = mapper.writeValueAsString(PS);
System.out.println(string);
}
@Test//json MAP生成json
public void test3() throws JsonProcessingException {
//创建map对象
Map<String,Object> map=new HashMap<>();
map.put("name","map");
map.put("age",11);
map.put("gender","男");
ObjectMapper mapper=new ObjectMapper();//先创建objmapper的对象
String string = mapper.writeValueAsString(map);
System.out.println(string);
}
@Test//json字符串转换为java对象
public void test4() throws IOException {
String json="{\"gender\":\"男\",\"name\":\"map\",\"age\":11}";
ObjectMapper mapper=new ObjectMapper();
Person person = mapper.readValue(json, Person.class);//有了对象就可以调用getXx和setXxx方法了
System.out.println(person);//打印一个person对象 Person{name='map', age=11, gender='男', date=null}
//这是一个json字符串{"name":"解析json","age":13,"gender":"男"}
}
}
3.person类
package domain; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import java.util.Date; public class Person {
private String name;
private int age;
private String gender;
//@JsonIgnore 转换时忽略 date字段
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date; @Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
", date=" + date +
'}';
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getGender() {
return gender;
} public void setGender(String gender) {
this.gender = gender;
} public Date getDate() {
return date;
} public void setDate(Date date) {
this.date = date;
}
}
java使用jackson生成和解析JSON的更多相关文章
- 我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题
1.问题描述 首先,需要解析的Json数据类似于下面的格式,但是包含了Java关键字abstract: { ret: 0, msg: "normal return.", news: ...
- fastjson生成和解析json数据,序列化和反序列化数据
本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<M ...
- fastjson生成和解析json数据
本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<M ...
- 转:JS中生成和解析JSON
原文地址:JS中生成和解析JSON 1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name ...
- java分享第十三天(fastjson生成和解析json数据,序列化和反序列化数据)
fastjson简介:Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jack ...
- Android 利用Gson生成或解析json
目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json.下载Gson:https://code.google.com/p/google-gson/ 下载的放在lib并导入,若 ...
- Amdroid示例:利用Gson生成或解析json
转自:http://www.cnblogs.com/liqw/p/4266209.html 目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json.下载Gson:https: ...
- 使用JSONObject生成和解析json
1. json数据类型 类型 描述 Number 数字型 String 字符串型 Boolean 布尔型 Array 数组,以"[]"括起来 Object 对象,类似于C中的结构体 ...
- JS中生成和解析JSON
1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name = "jyy"; ...
随机推荐
- python学习笔记_集合的定义和常用方法
1.认识集合 定义: s={1,2,3,4,5} s=set("hello") s=set(["steven","job","da ...
- android studio 3.2 查看Deveice Monitor
View菜单下面的 Tool Windows 下面的 Devecie File Explorer
- 用Matplotlib画三维图片的一个实例
from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np from matp ...
- Tensorflow学习教程------读取数据、建立网络、训练模型,小巧而完整的代码示例
紧接上篇Tensorflow学习教程------tfrecords数据格式生成与读取,本篇将数据读取.建立网络以及模型训练整理成一个小样例,完整代码如下. #coding:utf-8 import t ...
- Python模块——hashlib
简介 hashlib模块是用于对字符串进行加密,其可以把任意长度的数据转换为一个长度固定的数据串,且这种加密是不可逆的,故这种加密方式的安全性都很高.hash本质是一个函数,该模块提供了许多不同的加密 ...
- <强化学习>开门帖
(本系列只用作本人笔记,如果看官是以新手开始学习RL,不建议看我写的笔记昂) 今天是2020年2月7日,开始二刷david silver ulc课程.https://www.youtube.com/w ...
- Chapter1. The Electromagnetic Model (Field and Wave Electromagnetics. Second Edition) David K. Cheng
1-1 Introduction electric charge n.电荷 vice versa adv. 反之亦然 elastic adj. 弹性的 postulate v.假定 hasten v. ...
- OAuth 2.0安全案例回顾
转载自:http://www.360doc.com/content/14/0311/22/834950_359713295.shtml 0x00 背景 纵观账号互通发展史,可以发现OAuth比起其它协 ...
- druid+mybaits简单集成
在前面的文章中,我们对springboot开发中一些常用的框架进行了集成,但是发现还是存在一些问题,比如druid还需要比较长的固有配置,实际上druid官方是提供了相关的starters包的,内部采 ...
- 如何用java实现图片与base64转换
如果你是一个软件开发,不论前端后端工程师,图片的处理你是肯定要会的,关于图片的Base64编码,你可能有点陌生,但是这是一个软件工程师应该要掌握的知识点,现在很多网友把图片与base64转换都做成了小 ...