关于JSON的GSON

下面这篇是从csdn上复制黏贴过来的,感觉写的挺清楚的

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

jar和源码下载地址: http://code.google.com/p/google-gson/downloads/list

[java] view plaincopy

  1. public class Student {
  2. private int id;
  3. private String name;
  4. private Date birthDay;
  5. public int getId() {
  6. return id;
  7. }
  8. public void setId(int id) {
  9. this.id = id;
  10. }
  11. public String getName() {
  12. return name;
  13. }
  14. public void setName(String name) {
  15. this.name = name;
  16. }
  17. public Date getBirthDay() {
  18. return birthDay;
  19. }
  20. public void setBirthDay(Date birthDay) {
  21. this.birthDay = birthDay;
  22. }
  23. @Override
  24. public String toString() {
  25. return "Student [birthDay=" + birthDay + ", id=" + id + ", name="
  26. + name + "]";
  27. }
  28. }

测试类:

[html] view plaincopy

  1. import java.util.ArrayList;
  2. import java.util.Date;
  3. import java.util.List;
  4. import com.google.gson.Gson;
  5. import com.google.gson.reflect.TypeToken;
  6. public class GsonTest1 {
  7. public static void main(String[] args) {
  8. Gson gson = new Gson();
  9. Student student1 = new Student();
  10. student1.setId(1);
  11. student1.setName("李坤");
  12. student1.setBirthDay(new Date());
  13. // //////////////////////////////////////////////////////////
  14. System.out.println("----------简单对象之间的转化-------------");
  15. // 简单的bean转为json
  16. String s1 = gson.toJson(student1);
  17. System.out.println("简单Bean转化为Json===" + s1);
  18. // json转为简单Bean
  19. Student student = gson.fromJson(s1, Student.class);
  20. System.out.println("Json转为简单Bean===" + student);
  21. // 结果:
  22. // 简单Bean转化为Json==={"id":1,"name":"李坤","birthDay":"Jun 22, 2012 8:27:52 AM"}
  23. // Json转为简单Bean===Student [birthDay=Fri Jun 22 08:27:52 CST 2012, id=1,
  24. // name=李坤]
  25. // //////////////////////////////////////////////////////////
  26. Student student2 = new Student();
  27. student2.setId(2);
  28. student2.setName("曹贵生");
  29. student2.setBirthDay(new Date());
  30. Student student3 = new Student();
  31. student3.setId(3);
  32. student3.setName("柳波");
  33. student3.setBirthDay(new Date());
  34. List<Student> list = new ArrayList<Student>();
  35. list.add(student1);
  36. list.add(student2);
  37. list.add(student3);
  38. System.out.println("----------带泛型的List之间的转化-------------");
  39. // 带泛型的list转化为json
  40. String s2 = gson.toJson(list);
  41. System.out.println("带泛型的list转化为json==" + s2);
  42. // json转为带泛型的list
  43. List<Student> retList = gson.fromJson(s2,
  44. new TypeToken<List<Student>>() {
  45. }.getType());
  46. for (Student stu : retList) {
  47. System.out.println(stu);
  48. }
  49. // 结果:
  50. // 带泛型的list转化为json==
    [{"id":1,"name":"李坤","birthDay":"Jun 22, 2012 8:28:52 AM"},
    {"id":2,"name":"曹贵生","birthDay":"Jun 22, 2012 8:28:52 AM"},
    {"id":3,"name":"柳波","birthDay":"Jun 22, 2012 8:28:52 AM"}]
  51. // Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=1, name=李坤]
  52. // Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=2, name=曹贵生]
  53. // Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=3, name=柳波]
  54. }
  55. }

执行结果:

[plain] view plaincopy

    1. ----------简单对象之间的转化-------------
    2. 简单Bean转化为Json==={"id":1,"name":"李坤","birthDay":"Jun 22, 2012 9:10:31 PM"}
    3. Json转为简单Bean===Student [birthDay=Fri Jun 22 21:10:31 CST 2012, id=1, name=李坤]
    4. ----------带泛型的List之间的转化-------------

    5. 泛型的list转化为json==[{"id":1,"name":"李
      坤","birthDay":"Jun 22, 2012 9:10:31 PM"},{"id":2,"name":"曹贵
      生","birthDay":"Jun 22, 2012 9:10:31 PM"},{"id":3,"name":"柳
      波","birthDay":"Jun 22, 2012 9:10:31 PM"}]
    6. Student [birthDay=Fri Jun 22 21:10:31 CST 2012, id=1, name=李坤]
    7. Student [birthDay=Fri Jun 22 21:10:31 CST 2012, id=2, name=曹贵生]
    8. Student [birthDay=Fri Jun 22 21:10:31 CST 2012, id=3, name=柳波]
时间: 2024-08-26 10:48:20

关于JSON的GSON的相关文章

现在通过json和gson来实现完成一个级联下拉列表框

现在通过json和gson来实现完成一个级联下拉列表框(例如:省市联动) 1.前台jsp页面: <select name="address.upLeverId" id="Townside1"> <span style="white-space:pre"> </span><option value="-1">请选择</option> <s:iterator val

通过Json和Gson,快速生成和解析json字符串

1,首先我们要先明白json与gson有什么区别 其实他们是完全不同的概念: json是一种数据格式,便于数据传输,存储,交换. gson则是一种组件库,就是通过Gson我们可以把java中的对象(gson.toJson()),转换成Json字符串,当然反过来也是可以的(gson.fromJson); 2,代码 首先我们需要JSon和Gson这两个jar包 package com.json.dome; import java.util.ArrayList;import java.util.Lis

json和gson的区别

json是一种数据格式,便于数据传输.存储.交换gson是一种组件库,可以把java对象数据转换成json数据格式 GSON简单处理JSON json格式经常需要用到,google提供了一个处理json的项目:GSON,能很方便的处理转换java对象和JSON表达.他不需要使用annotation,也不需要对象的源代码就能使用.以字符串为例介绍:1 .构造json 字符串 例如要传送json格式的字符串 String appID = req.getParameter("appID");

json与gson互转

导入gson.jar bean: public class Person { private String name; private int age; /** * @return the name */ public String getName() { return name; } /** * @param name *            the name to set */ public void setName(String name) { this.name = name; } /

Android JSON、GSON、FastJson的封装与解析

声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种数据解析的DEMO都用到了下面这个Person类,贴出来: 1 public class Person { 2 private String name; 3 private int age; 4 private String address; 5 6 public Person() { 7 8 }

大话JSON之Gson解析JSON

(三)解析Json数组(多条Json数据) 比如有如下Json数据: [{'name':'John', 'grade':[{'course':'English','score':100},{'course':'Math','score':78}]},  //注:Json数组最外层一定要加"[]" {'name':'Tom', 'grade':[{'course':'English','score':86},{'course':'Math','score':90}]}] 如何处理这样的数

JSON 之GSON 解析

一. 谷歌GSON这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象.Gson支持任意复杂Java对象包括没有源代码的对象. 二.Gson解析Json步骤  A.服务器端将数据转换成json字符串    首先.服务器端项目要导入Gson的jar包到BuiltPath中.( Gson的jar:http://code.google.com/p/google-gson/   我们还可以下载gson的帮助文档) 然后将数据转为json字符串,核心函数是:

转换JSON之GSON

日常敲代码时候肯定免不了要遇到转换json数据的时候,记录一下GSON的简单使用方法: 首先需要引入Gson的JAR包, 有了jar包之后你就可以放心的使用了. 使用Gson可以转换的东西很多,不管是list还是map或者是set,再或者是一个对象等等都可以使用gson,但是在转换某些格式的数据时候需要进行一下简单的处理, 比如日期格式,因为在转换日期格式的时候出现了问题,所以详细记录一下gson转换日期格式. 我的User对象中有一个日期格式的birth,在转换User的list集合时候,如果

Android原生方式解析Json,Gson三方框架方式解析Json

package com.example.administrator.test.Fragment.Login; import android.support.v4.media.VolumeProviderCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import c