Gson转换器 android

引入gson包

//Gson解析.封装服务器返回json结果
   Gson gson = new Gson();

//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}  
          
          
//    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);   
  
//2、对象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]  
  
//3、集合如果不指定类型 默认为String  
        List<String> testList = new ArrayList<String>();   
        testList.add("first");   
        testList.add("second");   
        String listToJson = gson.toJson(testList);   
        System.out.println(listToJson); //["first","second"]   
          
      //集合字符串转回来需要指定类型  
        List<String> testList2 = (List<String>) gson.fromJson(listToJson,   
          new TypeToken<List<String>>() {   
          }.getType());   
        System.out.println(testList2);   
  
//4、 将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"}  

        //HashMap转对象  
        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}   
  
//5、对象含有普通对象、集合、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}*/ 

     //复杂对象string转对象  
   Teacher groupBean2 = (Teacher) gson.fromJson(sGroupBean,   
   new TypeToken<Teacher>() {   
   }.getType());   
  System.out.println(groupBean2);  

 

posted @ 2014-11-26 15:17  吕坤  阅读(362)  评论(0编辑  收藏  举报