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");