Jackson简介
Java JSON Jackson是Java的JSON库,它具有非常强大的数据绑定功能,并提供了一个框架,用于将自定义Java对象序列化为JSON并将JSON反序列化为Java对象。用Jackson编写的JSON可以包含嵌入式类信息,这些信息有助于在反序列化期间创建完整的对象树。
一、导入Jackson相关jar包
Jackson相关jar包下载地址:https://pan.baidu.com/s/1tHoswz87fgr9fhsdget1mA 提取码:jtb2
在根目录新建 libs 文件夹 (文件夹随意)
将jar包复制进来
然后将jar包添加到构建路径即:右键 jar 包 ==> build path ==> add to build pat(eclipse)
二、创建Java类
创建Person类,并添加其set 和get 以及 toString方法
Person.java
package com.health.domain;
public class Person {
private String name;
private int age;
private String gender;
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;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", gender=" + gender + "]";
}
}
三、转换示例
创建Java类,进行转换测试
JacksonTest.java
package com.health.test;
import org.junit.Test;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.health.domain.Person;
public class JacksonTest {
//Java对象转为JSON字符串
@Test
public void test1() throws Exception {
//1.创建Person对象
Person p = new Person();
p.setName("张三");
p.setAge(22);
p.setGender("男");
//2.创建Jackson核心对象 ObjectMapper
ObjectMapper mapper = new ObjectMapper();
//3.转换
/* 转换方法
* writeValue(参数1,obj)
* 参数1:
* File:将Obj对象转换为JSON字符串,并保存到指定的文件中
* Writer:将Obj对象转换为JSON字符串,并将其填充到字符输出流中
* OutputStream:将Obj对象转换为JSON字符串,并将其填充到字节输出流中
* writeValueAsString(obj):将对象转换为json字符串
*/
String json = mapper.writeValueAsString(p);
System.out.println(json);
//{"name":"张三","age":22,"gender":"男"}
//将数据源写到e://a.txt中
//mapper.writeValue(new File("e://a.txt"),p);
//将数据源关联到Writer中
//mapper.writeValue(new FileWriter("e://b.txt"),p);
}
//JSON字符串转换为Java对象
@Test
public void test2() throws Exception{
//1.初始化JSON字符串
String json = "{\"name\":\"张三\",\"age\":22,\"gender\":\"男\"}";
//2.创建ObjectMapper对象
ObjectMapper mapper = new ObjectMapper();
//3.转换为Java对象,Person对象
Person person = mapper.readValue(json, Person.class);
System.out.println(person);
//Person [name=张三, age=22, gender=男]
}
}
项目结构如下图: