zoukankan      html  css  js  c++  java
  • Android开发_Gson解析

    1. //转换器  
    2.         GsonBuilder builder = new GsonBuilder();   
    3.         // 不转换没有 @Expose 注解的字段   
    4.         builder.excludeFieldsWithoutExposeAnnotation();  
    5.         Gson gson = builder.create();   
    6.           
    7.         //1、对象转string  
    8.         Student stu = new Student();  
    9.         stu.setStudentId(333);  
    10.         stu.setStudentName("qqq");  
    11.         String stuStr = gson.toJson(stu);  
    12.         System.out.println(stuStr); //{"studentName":"qqq","studentId":333}  
    13.           
    14.           
    15.         //2、string转对象  
    16.         Student user2 = gson.fromJson(stuStr, Student.class);   
    17.         System.out.println(user2);   
    18.         String stuTemp = "{"studentName":"qqq2","studentId":3335}";  
    19.         Student user4 = gson.fromJson(stuTemp, Student.class);   
    20.         System.out.println(user4);   
    21.   
    22.         //3、对象List转string  
    23.         List<Student> testBeanList = new ArrayList<Student>();   
    24.         Student testBean = new Student();   
    25.         testBean.setStudentId(555);  
    26.         testBean.setStudentName("552");  
    27.         testBeanList.add(testBean);   
    28.           
    29.         //Gson gsonList = new Gson();   
    30.         Type type = new TypeToken<List<Student>>(){}.getType();  //指定集合对象属性  
    31.         String beanListToJson = gson.toJson(testBeanList, type);   
    32.         System.out.println(beanListToJson); //[{"studentName":"552","studentId":555}]   
    33.   
    34.         //集合string转对象list  
    35.         List<Student> testBeanListFromJson = gson.fromJson(beanListToJson, type);   
    36.         System.out.println(testBeanListFromJson); //[555:552]  
    37.   
    38.         //4、集合如果不指定类型 默认为String  
    39.         List<String> testList = new ArrayList<String>();   
    40.         testList.add("first");   
    41.         testList.add("second");   
    42.         String listToJson = gson.toJson(testList);   
    43.         System.out.println(listToJson); //["first","second"]   
    44.           
    45.         //5、集合字符串转回来需要指定类型  
    46.         List<String> testList2 = (List<String>) gson.fromJson(listToJson,   
    47.           new TypeToken<List<String>>() {   
    48.           }.getType());   
    49.         System.out.println(testList2);   
    50.   
    51.         //6、 将HashMap字符串转换为 JSON   
    52.         Map<String, String> testMap = new HashMap<String, String>();   
    53.         testMap.put("id""id.first");   
    54.         testMap.put("name""name.second");   
    55.         String mapToJson = gson.toJson(testMap);   
    56.         System.out.println(mapToJson); //{"id":"id.first","name":"name.second"}  
    57.         //7、stringMap转对象  
    58.         Map<String, String> userMap2 = (Map<String, String>) gson.fromJson(mapToJson,   
    59.                 new TypeToken<Map<String, String>>() {   
    60.             }.getType());   
    61.         System.out.println(userMap2); //{id=id.first, name=name.second}   
    62.   
    63.         //8、对象含有普通对象、集合、map情况  
    64.         Student user1 = new Student();   
    65.         user1.setStudentId(1001);   
    66.         user1.setStudentName("张三");   
    67.           
    68.         Student user3 = new Student();   
    69.         user3.setStudentId(1002);   
    70.         user3.setStudentName("李四");   
    71.           
    72.         Map<String, Student> userMap = new HashMap<String, Student>();   
    73.         userMap.put("user1", user1);   
    74.         userMap.put("user3", user3);   
    75.           
    76.         List<Student> userList = new ArrayList<Student>();   
    77.         userList.add(user1);   
    78.         userList.add(user3);   
    79.           
    80.         Teacher groupBean = new Teacher();   
    81.         groupBean.setStudent(user1);  
    82.         groupBean.setStus(userList);  
    83.         groupBean.setMap((HashMap)userMap);  
    84.         //groupBean.setUserList(userList);   
    85.         Gson gsonGroup = new Gson();   
    86.   
    87.         String sGroupBean = gsonGroup.toJson(groupBean, new TypeToken<Teacher>() {   
    88.             }.getType());   
    89.         System.out.println(sGroupBean);   
    90.         /*{"stus":[{"studentName":"张三","studentId":1001},{"studentName":"李四","studentId":1002}],"student":{"studentName":"张三","studentId":1001},"map":{"user3":{"studentName":"李四","studentId":1002},"user1":{"studentName":"张三","studentId":1001}},"id":0,"age":0}*/  
    Java代码   收藏代码
    1. //9、复杂对象string转对象  
    2. Teacher groupBean2 = (Teacher) gson.fromJson(sGroupBean,   
    3.    new TypeToken<Teacher>() {   
    4.    }.getType());   
    5. System.out.println(groupBean2);   

     

    Java代码   收藏代码
    1. package com.andtools;  
    2.   
    3. import com.google.gson.annotations.Expose;  
    4.   
    5. public class Student {  
    6.     @Expose  
    7.     private String studentName;  
    8.     @Expose  
    9.     private int studentId;  
    10.     public Student(){}  
    11.     public Student(int studentId,String studentName){  
    12.         this.setStudentId(studentId);  
    13.         this.setStudentName(studentName);  
    14.     }  
    15.     public String toString(){  
    16.         return this.getStudentId() + ":" + this.getStudentName();  
    17.     }  
    18.     public String getStudentName() {  
    19.         return studentName;  
    20.     }  
    21.     public void setStudentName(String studentName) {  
    22.         this.studentName = studentName;  
    23.     }  
    24.     public int getStudentId() {  
    25.         return studentId;  
    26.     }  
    27.     public void setStudentId(int studentId) {  
    28.         this.studentId = studentId;  
    29.     }  
    30.       
    31. }  

     

    Java代码   收藏代码
    1. package com.andtools;  
    2.   
    3. import java.util.HashMap;  
    4. import java.util.List;  
    5. import java.util.Map;  
    6.   
    7. import com.google.gson.annotations.Expose;  
    8.   
    9. public class Teacher {  
    10.     @Expose  
    11.     private int id;  
    12.     @Expose  
    13.     private String name;  
    14.     @Expose  
    15.     private int age;  
    16.     @Expose  
    17.     private Student student;  
    18.     @Expose  
    19.     private List stus;  
    20.     @Expose  
    21.     private HashMap map;  
    22.     public String toString(){  
    23.         return this.getId()+":"+this.getName()+":"+this.getAge() +":"this.getStudent().toString() + ":" + this.getStus() + ":" + this.getMap();  
    24.     }  
    25.     public int getId() {  
    26.         return id;  
    27.     }  
    28.     public void setId(int id) {  
    29.         this.id = id;  
    30.     }  
    31.     public String getName() {  
    32.         return name;  
    33.     }  
    34.     public void setName(String name) {  
    35.         this.name = name;  
    36.     }  
    37.     public int getAge() {  
    38.         return age;  
    39.     }  
    40.     public void setAge(int age) {  
    41.         this.age = age;  
    42.     }  
    43.     public Student getStudent() {  
    44.         return student;  
    45.     }  
    46.     public void setStudent(Student student) {  
    47.         this.student = student;  
    48.     }  
    49.     public List getStus() {  
    50.         return stus;  
    51.     }  
    52.     public void setStus(List stus) {  
    53.         this.stus = stus;  
    54.     }  
    55.     public HashMap getMap() {  
    56.         return map;  
    57.     }  
    58.     public void setMap(HashMap map) {  
    59.         this.map = map;  
    60.     }  
    61.       
    62. }  
  • 相关阅读:
    BZOJ3615 : MSS
    BZOJ3468 : 滑雪
    BZOJ3515 : EvenPaths
    BZOJ3161 : 孤舟蓑笠翁
    BZOJ2652 : 三角板
    BZOJ2646 : neerc2011 flight
    BZOJ3567 : AABB
    HDU5823 : color II
    BZOJ1946 : [Ceoi2006]ANTENNA
    BZOJ4644 : 经典傻逼题
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3293858.html
Copyright © 2011-2022 走看看