**一、什么是json?**JSON是一種輕量級的數據交換格式。
一、什么是json?
JSON是一種輕量級的數據交換格式。
二、json數據格式
2.1 JSON數組格式 json的數據本身是數組,中括號包裹,數組的元素之間逗號分開,數組元素的數據類型沒有限制[{ "userccount":"admin", "password":"123456"},{ "userccount":"zhangsan", "password":"123456"}]
2.2 JSON對象格式
json的數據本身是對象,大括號包裹,對象采用鍵值對形式存儲,鍵固定為字符串類型,值是任意類型的數據,鍵和值使用冒號分開。
{ "userccount":"admin", "password":"123456"}
三、FastJson介紹
FastJson是阿里巴巴的開源JSON解析庫,它可以解析JSON格式的字符串,支持將JAVA Bean序列化為JSON字符串,也可以將JSON字符串反序列化到Java Bean。 是一種json轉換工具
序列化(JAVA對象轉換為JSON格式字符串):
3.1 JAVA對象轉換為JSON字符串//準備一個JAVA對象@DatapublicclassStudent { privateInteger id; privateStringname; privateInteger age; } //JAVA對象轉為JSON格式字符串publicstaticvoidmain(String[] args) { //JAVA對象Student student = newStudent(); student.setId(1); student.setName("張三"); student.setAge(20); //轉換為JSON格式字符串StringjsonString = JSON.toJSONString(student); System.out.println(jsonString); } 打?。?{"age":20,"id":1,"name":"張三"}
3.2 List集合轉換為JSON字符串
publicstaticvoidmain(String[] args){ //定義一個listList<Student> list=newArrayList<>(); Student student = newStudent(); student.setId(1); student.setName("張三"); student.setAge(20); Student student2 = newStudent(); student2.setId(2); student2.setName("李四"); student2.setAge(22); list.add(student); list.add(student2); //轉換為String jsonString = JSON.toJSONString(list); System.out.println(jsonString); } 打?。?[{"age":20,"id":1,"name":"張三"},{"age":22,"id":2,"name":"李四"}]
3.3 MAP集合轉換為JSON字符串
publicstaticvoidmain(String[] args){ //定義一個MapMap<String,Student> map=newHashMap<>(); List<Student> list=newArrayList<>(); Student student = newStudent(); student.setId(1); student.setName("張三"); student.setAge(20); Student student2 = newStudent(); student2.setId(2); student2.setName("李四"); student2.setAge(22); map.put("student",student); map.put("student2",student2); //轉換為String jsonString = JSON.toJSONString(map); System.out.println(jsonString); } 打?。?{"student":{"age":20,"id":1,"name":"張三"},"student2":{"age":22,"id":2,"name":"李四"}}
反序列化(JSON格式字符串轉換為JAVA對象):
3.4 JSON字符串轉換為JAVA對象
publicstaticvoidmain(String[] args){ String jsonstring="{\"age\":20,\"id\":1,\"name\":\"張三\"}"; Student student= JSON.parseObject(jsonstring,Student.class); System.out.println(student); } 打?。?Student(id=1, name=張三, age=20)
3.5 JSON字符串轉換為List集合
publicstaticvoidmain(String[] args){ String jsonstring="[{\"age\":20,\"id\":1,\"name\":\"張三\"},{\"age\":22,\"id\":2,\"name\":\"李四\"}]"; List<Student> students = JSON.parseArray(jsonstring, Student.class); for(Student student:students){ System.out.println(student); } } 打?。?Student(id=1, name=張三, age=20) Student(id=2, name=李四, age=22)
3.6 JSON字符串轉換為MAP集合
public staticvoidmain(String[] args) { //定義1個json字符串Stringjsonstring="{\"student\":{\"age\":20,\"id\":1,\"name\":\"張三\"},\"student2\":{\"age\":22,\"id\":2,\"name\":\"李四\"}}"; //直接進行反序列化,Map集合沒有泛型,泛型沒有是不安全的集合//Map map=JSON.parseObject(jsonstring);//轉后的集合,必須有泛型//調用parseObject,傳遞參數,TypeReference類型,在TypeReference類的泛型中,傳遞轉后的Map集合Map<String,Student > map=JSON.parseObject(jsonstring,newTypeReference<Map<String,Student>>(){}); for(Stringkey:map.keySet()){ System.out.println(map.get(key)); } } 打?。?Student(id=1, name=張三, age=20) Student(id=2, name=李四, age=22)
版權聲明:本文內容來源于互聯網,不代表本站觀點。本站僅提供信息檢索服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 691227327@qq.com 舉報,一經查實,本站將立刻刪除。