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"; ...
随机推荐
- Pmw大控件
Python大控件——Pmw——是合成的控件,以Tkinter控件为基类,是完全在Python内写的.它们可以很方便地增加功能性的应用,而不必写一堆代码.特别是,组合框和内部确认计划的输入字段放在一起 ...
- python语法基础-并发编程-线程-线程理论和线程的启动
####################### 线程介绍 ############################## """ 线程介绍 为什 ...
- PowerShell创建 Profile
profile主要用于个性化常用的函数.别名等等.每次加载powershell的时候,都会执行profile中的内容. 查看是否有profile: $profile 如果结果是false说明没有.则创 ...
- [YNOI2018]五彩斑斓的世界&CF896E(分块+并查集)
由于晚上比赛二连(Atcoder&codeforces),外加复习学考,所以暂时没时间写了. 贴个O(n√n)的分块代码,洛谷和cf上都过了,但垃圾bzoj卡不过去,不改了. #include ...
- linux安装nginx步骤
转载自:https://blog.csdn.net/t8116189520/article/details/81909574,修改部分内容 本文已收录至博客专栏linux安装各种软件及配置环境教程中 ...
- Microsoft .NET Framework 4.5.2 (Offline Installer)
Microsoft .NET Framework 4.5.2 (Offline Installer) for Windows Vista SP2, Windows 7 SP1, Windows 8, ...
- 897A. Scarborough Fair# 斯卡布罗集市(模拟)
题目出处:http://codeforces.com/problemset/problem/897/A 题目大意:将某个范围内的某个字符换成另外一个字符 #include<iostream> ...
- 四、linux-mysql 下MySQL的管理(一)
1.mysql启动的实质: 在单实例中,/etc/init.d/mysql start 是一个shell脚本,调用mysqld_safe脚本,最后调用mysqld服务启动mysql. 2. 关闭mys ...
- PAT甲级——1009 Product of Polynomials
PATA1009 Product of Polynomials Output Specification: For each test case you should output the produ ...
- AJAX数据传输(原生js)
原生ajax写法 <!DOCTYPE html> <html lang=""> <head> <meta charset="UT ...