Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發_Gson解析

Android開發_Gson解析

編輯:關於Android編程

//轉換器           GsonBuilder builder = new GsonBuilder();            // 不轉換沒有 @Expose 注解的字段            builder.excludeFieldsWithoutExposeAnnotation();           Gson gson = builder.create();                       //1、對象轉string           Student stu = new Student();           stu.setStudentId(333);           stu.setStudentName("qqq");           String stuStr = gson.toJson(stu);           System.out.println(stuStr); //{"studentName":"qqq","studentId":333}                                 //2、string轉對象           Student user2 = gson.fromJson(stuStr, Student.class);            System.out.println(user2);            String stuTemp = "{\"studentName\":\"qqq2\",\"studentId\":3335}";           Student user4 = gson.fromJson(stuTemp, Student.class);            System.out.println(user4);               //3、對象List轉string           List<Student> testBeanList = new ArrayList<Student>();            Student testBean = new Student();            testBean.setStudentId(555);           testBean.setStudentName("552");           testBeanList.add(testBean);                       //Gson gsonList = new Gson();            Type type = new TypeToken<List<Student>>(){}.getType();  //指定集合對象屬性           String beanListToJson = gson.toJson(testBeanList, type);            System.out.println(beanListToJson); //[{"studentName":"552","studentId":555}]               //集合string轉對象list           List<Student> testBeanListFromJson = gson.fromJson(beanListToJson, type);            System.out.println(testBeanListFromJson); //[555:552]              //4、集合如果不指定類型 默認為String           List<String> testList = new ArrayList<String>();            testList.add("first");            testList.add("second");            String listToJson = gson.toJson(testList);            System.out.println(listToJson); //["first","second"]                       //5、集合字符串轉回來需要指定類型           List<String> testList2 = (List<String>) gson.fromJson(listToJson,              new TypeToken<List<String>>() {              }.getType());            System.out.println(testList2);               //6、 將HashMap字符串轉換為 JSON            Map<String, String> testMap = new HashMap<String, String>();            testMap.put("id", "id.first");            testMap.put("name", "name.second");            String mapToJson = gson.toJson(testMap);            System.out.println(mapToJson); //{"id":"id.first","name":"name.second"}           //7、stringMap轉對象           Map<String, String> userMap2 = (Map<String, String>) gson.fromJson(mapToJson,                    new TypeToken<Map<String, String>>() {                }.getType());            System.out.println(userMap2); //{id=id.first, name=name.second}               //8、對象含有普通對象、集合、map情況           Student user1 = new Student();            user1.setStudentId(1001);            user1.setStudentName("張三");                       Student user3 = new Student();            user3.setStudentId(1002);            user3.setStudentName("李四");                       Map<String, Student> userMap = new HashMap<String, Student>();            userMap.put("user1", user1);            userMap.put("user3", user3);                       List<Student> userList = new ArrayList<Student>();            userList.add(user1);            userList.add(user3);                       Teacher groupBean = new Teacher();            groupBean.setStudent(user1);           groupBean.setStus(userList);           groupBean.setMap((HashMap)userMap);           //groupBean.setUserList(userList);            Gson gsonGroup = new Gson();               String sGroupBean = gsonGroup.toJson(groupBean, new TypeToken<Teacher>() {                }.getType());            System.out.println(sGroupBean);            /*{"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代碼   //9、復雜對象string轉對象   Teacher groupBean2 = (Teacher) gson.fromJson(sGroupBean,       new TypeToken<Teacher>() {       }.getType());    System.out.println(groupBean2);      Java代碼   package com.andtools;      import com.google.gson.annotations.Expose;      public class Student {       @Expose       private String studentName;       @Expose       private int studentId;       public Student(){}       public Student(int studentId,String studentName){           this.setStudentId(studentId);           this.setStudentName(studentName);       }       public String toString(){           return this.getStudentId() + ":" + this.getStudentName();       }       public String getStudentName() {           return studentName;       }       public void setStudentName(String studentName) {           this.studentName = studentName;       }       public int getStudentId() {           return studentId;       }       public void setStudentId(int studentId) {           this.studentId = studentId;       }          }     Java代碼   package com.andtools;      import java.util.HashMap;   import java.util.List;   import java.util.Map;      import com.google.gson.annotations.Expose;      public class Teacher {       @Expose       private int id;       @Expose       private String name;       @Expose       private int age;       @Expose       private Student student;       @Expose       private List stus;       @Expose       private HashMap map;       public String toString(){           return this.getId()+":"+this.getName()+":"+this.getAge() +":"+ this.getStudent().toString() + ":" + this.getStus() + ":" + this.getMap();       }       public int getId() {           return id;       }       public void setId(int id) {           this.id = id;       }       public String getName() {           return name;       }       public void setName(String name) {           this.name = name;       }       public int getAge() {           return age;       }       public void setAge(int age) {           this.age = age;       }       public Student getStudent() {           return student;       }       public void setStudent(Student student) {           this.student = student;       }       public List getStus() {           return stus;       }       public void setStus(List stus) {           this.stus = stus;       }       public HashMap getMap() {           return map;       }       public void setMap(HashMap map) {           this.map = map;       }          }  
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved