packagetest;importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.ObjectMapper;importdomain.Person;importorg.junit.Test;importjava.io.File;importjava.io.FileWriter;importjava.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 classTest1 {
@Test//生成json
public void test() throwsIOException {
Person p=newPerson();
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() throwsJsonProcessingException {
Person p=newPerson();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(newDate());
ObjectMapper mapper=new ObjectMapper();//先创建objmapper的对象
String string =mapper.writeValueAsString(p);
System.out.println(string);
}
@Test//json复杂转换
public void test2() throwsJsonProcessingException {
Person p=newPerson();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(newDate());
Person p1=newPerson();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(newDate());
Person p2=newPerson();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(newDate());//集合
List 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() throwsJsonProcessingException {//创建map对象
Map 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() throwsIOException {
String json="{\"gender\":\"男\",\"name\":\"map\",\"age\":11}";
ObjectMapper mapper=newObjectMapper();
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":"男"}
}
}