谷歌gson的使用



  1. //转换器
  2. GsonBuilder builder = new GsonBuilder();
  3. // 不转换没有 @Expose 注解的字段
  4. builder.excludeFieldsWithoutExposeAnnotation();
  5. Gson gson = builder.create();
  6. //1、对象转string
  7. Student stu = new Student();
  8. stu.setStudentId(333);
  9. stu.setStudentName("qqq");
  10. String stuStr = gson.toJson(stu);
  11. System.out.println(stuStr); //{"studentName":"qqq","studentId":333}
  12. //2、string转对象
  13. Student user2 = gson.fromJson(stuStr, Student.class);
  14. System.out.println(user2);
  15. String stuTemp = "{\"studentName\":\"qqq2\",\"studentId\":3335}";
  16. Student user4 = gson.fromJson(stuTemp, Student.class);
  17. System.out.println(user4);
  18. //3、对象List转string
  19. List<Student> testBeanList = new ArrayList<Student>();
  20. Student testBean = new Student();
  21. testBean.setStudentId(555);
  22. testBean.setStudentName("552");
  23. testBeanList.add(testBean);
  24. //Gson gsonList = new Gson();
  25. Type type = new TypeToken<List<Student>>(){}.getType(); //指定集合对象属性
  26. String beanListToJson = gson.toJson(testBeanList, type);
  27. System.out.println(beanListToJson); //[{"studentName":"552","studentId":555}]
  28. //集合string转对象list
  29. List<Student> testBeanListFromJson = gson.fromJson(beanListToJson, type);
  30. System.out.println(testBeanListFromJson); //[555:552]
  31. //4、集合如果不指定类型 默认为String
  32. List<String> testList = new ArrayList<String>();
  33. testList.add("first");
  34. testList.add("second");
  35. String listToJson = gson.toJson(testList);
  36. System.out.println(listToJson); //["first","second"]
  37. //5、集合字符串转回来需要指定类型
  38. List<String> testList2 = (List<String>) gson.fromJson(listToJson,
  39. new TypeToken<List<String>>() {
  40. }.getType());
  41. System.out.println(testList2);
  42. //6、 将HashMap字符串转换为 JSON
  43. Map<String, String> testMap = new HashMap<String, String>();
  44. testMap.put("id""id.first");
  45. testMap.put("name""name.second");
  46. String mapToJson = gson.toJson(testMap);
  47. System.out.println(mapToJson); //{"id":"id.first","name":"name.second"}
  48. //7、stringMap转对象
  49. Map<String, String> userMap2 = (Map<String, String>) gson.fromJson(mapToJson,
  50. new TypeToken<Map<String, String>>() {
  51. }.getType());
  52. System.out.println(userMap2); //{id=id.first, name=name.second}
  53. //8、对象含有普通对象、集合、map情况
  54. Student user1 = new Student();
  55. user1.setStudentId(1001);
  56. user1.setStudentName("张三");
  57. Student user3 = new Student();
  58. user3.setStudentId(1002);
  59. user3.setStudentName("李四");
  60. Map<String, Student> userMap = new HashMap<String, Student>();
  61. userMap.put("user1", user1);
  62. userMap.put("user3", user3);
  63. List<Student> userList = new ArrayList<Student>();
  64. userList.add(user1);
  65. userList.add(user3);
  66. Teacher groupBean = new Teacher();
  67. groupBean.setStudent(user1);
  68. groupBean.setStus(userList);
  69. groupBean.setMap((HashMap)userMap);
  70. //groupBean.setUserList(userList);
  71. Gson gsonGroup = new Gson();
  72. String sGroupBean = gsonGroup.toJson(groupBean, new TypeToken<Teacher>() {
  73. }.getType());
  74. System.out.println(sGroupBean);
  75. /*{"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代码 
  1. //9、复杂对象string转对象
  2. Teacher groupBean2 = (Teacher) gson.fromJson(sGroupBean,
  3. new TypeToken<Teacher>() {
  4. }.getType());
  5. System.out.println(groupBean2);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值