文章目录
- 一、Java 对象转换为 JSON
- 1. 使用步骤
- 2. 注解
- 3. 复杂java对象转换
- 二、JSON 转为 Java对象
一、Java 对象转换为 JSON
1. 使用步骤
使用步骤:
(1)导入jackson的相关jar包
(2)创建Jackson核心对象 ObjectMapper
(3)调用ObjectMapper的相关方法进行转换
* 转换方法:
* writeValue(参数1,obj):
参数1:
File:将obj对象转换为JSON字符串,并保存到指定的文件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
* writeValueAsString(obj):将对象转为json字符串
public class JacksonTest {
//Java对象转为JSON字符串
@Test
public void test1() throws Exception {
//1.创建Person对象
Person p = new Person();
p.setName("张三");
p.setAge(23);
p.setGender("男");
//2.创建Jackson的核心对象 ObjectMapper
ObjectMapper mapper = new ObjectMapper();
//3.转换
String json = mapper.writeValueAsString(p);
//{"name":"张三","age":23,"gender":"男"}
//System.out.println(json);//{"name":"张三","age":23,"gender":"男"}
//writeValue,将数据写到d://a.txt文件中
//mapper.writeValue(new File("d://a.txt"),p);
//writeValue.将数据关联到Writer中
mapper.writeValue(new FileWriter("d://b.txt"),p);
}
}
2. 注解
* 注解:
* @JsonIgnore:排除属性。
* @JsonFormat:属性值得格式化
* @JsonFormat(pattern = "yyyy-MM-dd")
比如这里给 Person 类添加了一个 birthday 属性:
private Date birthday;
可以看到,直接显示的格式不是我们期望的,现在可以有两种处理方式
(1)将其排除
(2)对其进行格式化
3. 复杂java对象转换
* List:数组
* Map:对象格式一致
二、JSON 转为 Java对象
(1)导入jackson的相关jar包
(2)创建Jackson核心对象 ObjectMapper
(3)调用 ObjectMapper 的相关方法进行转换
* readValue(json字符串数据,Class)