JSON数据和java对象的相互转换
0.JSON解析器
常见的解析器:Jsonlib,Gson,fastjson,jackson
1.JSON转为java对象
(1)使用步骤:
a.导入jackson的相关jar包
b.创建jackson核心对象,ObjectMapper
c.调用ObjectMapper的相关方法进行转换
1.readValue(json字符串数据,Class)
2.java对象转换JSON
(1)使用步骤:
a.导入jackson的相关jar包
b.创建jackson核心对象,ObjectMapper
c.调用ObjectMapper的相关方法进行转换
转换方法:
1.writeValue(参数1,obj)
参数1:
File:将obj对象转换为json字符串,并保存到指定的文件中
Writer:将obj对象转换为json字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为Json字符串,并将json数据填充到字节输出流中
2.writeValueAsString(obj):将对象转为json字符串
示例
//java对象转为json字符串
@Test
public void test1() throws IOException {
//1、创建person对象
Person p = new Person();
p.setName("张三");
p.setAge(23);
p.setGender("男");
//创建jackson的核心对象,ObjectMapper
ObjectMapper mapper = new ObjectMapper();
//3.转换
String json = mapper.writeValueAsString(p);
System.out.println(json);
//将数据写到d盘文件中
//mapper.writeValue(new File("D://a.txt"),p);
//将数据关联到writer中
mapper.writeValue(new FileWriter("d://b/.txt"),p);
}
(2)细节:
1.@JsonIgnore:排除属性
2.@JsonFormat:属性值的格式化
(3)复杂java对象转换
1.List:数组
2.Map:与对象格式一致
案例
需求:校验用户名是否存在
注意:
1.服务器响应的数据,在客户端 使用时,要想当做json数据格式使用
(1)$.get(type)
:将最后一个参数type指定为json
(2)在服务器端设置MIME类型
response.setContentType("application/json;charset=utf-8");