Gson解析框架

来源:互联网 发布:ubuntu怎么安装qq2016 编辑:程序博客网 时间:2024/05/16 07:34

  • 在网上看到个Gson的使用方法,于是保存粘贴到这里,留个地方以供日后参考


  • //转换器 
  • 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);     
        //9、复杂对象string转对象
        Teacher groupBean2 = (Teacher)gson.fromJson(sGroupBean,
           newTypeToken<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; 
  • } 
  •  
  • } 
  • from:http://www.eoeandroid.com/thread-319643-1-1.html
0 0
原创粉丝点击