java jackson_java使用jackson生成和解析JSON

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":"男"}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值