Gson的使用-----可用在界面之间传递对象等

之前在activity等传递数据时往往有时要传递一个对象,总是先把对象序列化,以后有了gson,就再也不用序列化了,简简单单一步搞定:

附json的jar包:http://download.csdn.net/detail/u010411826/8212401

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 B=new Gson().toJson(A);//A是你的对象,B是对象转换成的String
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);   
简单来说:Student A=new Gson().fromJson(B,Student.class);//B是对象转换成的String,A是你的对象

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();   
<span style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px;">对象List转string  </span>
        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、将HshMap字符串转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"}  
5、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} 
6、对象含有普通对象、集合、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}*/  

附原文链接:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值