GSON

转载 2013年12月02日 09:56:35
  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}*/


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

Gson的基本介绍和使用

JSON是我们在实际开发最常用的数据交换格式,GSON则是谷歌提供的用来解析Json数据的一个Java类库,在进行Gson介绍之前我们通过以下几个部分对Gson进行深入的了解。 一、JSON的简介 J...
  • u013043346
  • u013043346
  • 2016年01月15日 17:50
  • 4064

GSON使用的学习笔记,进阶篇(一)

进阶一,自定义解析过程         我遇到的场景比较奇葩,待解析的json格式的字符串中还存在一些不必要的字段,但是提供数据的部件为了实现简单,以及所谓的数据完整性,并没有把我当前不关心的数据过滤...
  • babyblue_963
  • babyblue_963
  • 2013年11月18日 23:41
  • 5042

gson处理多层嵌套的复杂形式的json

当一个Class的字段属性中包含另一个class时gson能正常处理吗? 最初看到网上有说使用static的说法 经验证是不需要的 直接当普通类来用就可以了。 直接使用gson.fromJson方法...
  • u010741768
  • u010741768
  • 2016年03月18日 20:34
  • 2140

Java Gson 使用,Gson将字符串转为list

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。 对象转为字符串 Stri...
  • bingqilin_
  • bingqilin_
  • 2015年09月10日 11:46
  • 11599

详解Gson使用(三)使用注解

项目地址: Github:https://github.com/smileysx/GsonTest Oschina:https://git.oschina.net/ysx_xx/GsonText ...
  • a249900679
  • a249900679
  • 2016年05月12日 19:17
  • 7348

Gson 官方文档

gson官方文档
  • xiaole0313
  • xiaole0313
  • 2016年12月31日 11:49
  • 1191

使用Gson解析复杂的json数据

Gson解析复杂的json数据
  • tkwxty
  • tkwxty
  • 2014年06月25日 18:48
  • 171693

Gson的详细使用(android必备,快速提高开发效率)

Gson的详细使用(android必备,快速提高开发效率)         接下来我要强烈给大家推荐一个google官方推荐使用的json解析库Gson。掌握好它之后,在以后的开发中就会减少非常多的代...
  • oQiHaoGongYuan
  • oQiHaoGongYuan
  • 2016年03月21日 14:34
  • 10219

基于Gson库的json/bean解析工具

package zmx.gson.test; import java.io.Serializable; import java.util.Date; public class UserInfo i...
  • zmx729618
  • zmx729618
  • 2016年04月25日 10:38
  • 933

使用Gson排除特定字段

1.忽略值为null // Gson生成json时候,会忽略掉值为null的key Gson gson = new GsonBuilder().serializeNulls().create()...
  • Hknock
  • Hknock
  • 2016年04月01日 16:23
  • 11728
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GSON
举报原因:
原因补充:

(最多只允许输入30个字)