Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。

比如:

<pre name="code" class="java">public class Order {public String id;public String OrderName;  @Overridepublic String toString() {return "id:"+id+",OrderName:"+OrderName;}
}
public class GsonTest {public static void main(String[] args) {Order order=new Order();order.id="1";order.OrderName="Book";Gson gson=new Gson();String toJson=gson.toJson(order);System.out.println("Order--->JSON:\n"+toJson);Order fromJson=gson.fromJson(toJson,Order.class);System.out.println("JSON--->Order:\n"+fromJson);}
}

输出:

Order--->JSON:
{"id":"1","OrderName":"Book"}
JSON--->Order:
id:1,OrderName:Book

接下来我们讲解GSON解析JSON的几种情况

1、模板反射对象

<span style="font-size:18px;">public class GsonTest {public static void main(String[] args) {List<Order> orderList=new ArrayList<Order>();Order order1=new Order();order1.id="1";order1.OrderName="Book";Order order2=new Order();order2.id="2";order2.OrderName="Fruit";orderList.add(order1);orderList.add(order2);Gson gson=new Gson();Type type=new TypeToken<List<Order>>(){}.getType();String toJson=gson.toJson(orderList,type);System.out.println("Order--->JSON:\n"+toJson);List<Order> fromJson=gson.fromJson(toJson,type);System.out.println("JSON--->Order:\n"+fromJson);}
}</span>

输出:

Order--->JSON:
[{"id":"1","OrderName":"Book"},{"id":"2","OrderName":"Fruit"}]
JSON--->Order:
[id:1,OrderName:Book, id:2,OrderName:Fruit]

2、集合使用

public class GsonTest {public static void main(String[] args) {HashMap<String, Object> orderMap=new HashMap<String , Object>();Order order1=new Order();order1.id="1";order1.OrderName="Book";Order order2=new Order();order2.id="2";order2.OrderName="Fruit";orderMap.put("order1", order1);orderMap.put("order2", order2);Gson gson=new Gson();Type type=new TypeToken<HashMap<String,Object>>(){}.getType();String toJson=gson.toJson(orderMap,type);System.out.println("Order--->JSON:\n"+toJson);HashMap<String, Object> fromJson=gson.fromJson(toJson,type);System.out.println("JSON--->Order:\n"+fromJson);}
}

输出:

Order--->JSON:
{"order2":{"id":"2","OrderName":"Fruit"},"order1":{"id":"1","OrderName":"Book"}}
JSON--->Order:
{order2={id=2, OrderName=Fruit}, order1={id=1, OrderName=Book}}

3、嵌套使用对象

public class Book {public String id;public String name;public String price;
}
public class Order {public String id;public String OrderName;    public ArrayList<Book> bookList;public HashMap<String, Book> bookMap;
}
public class GsonTest {public static void main(String[] args) {Book book1=new Book();book1.id="1001";book1.name="Java Think";book1.price="23";Book book2=new Book();book2.id="1002";book2.name="Gson Test";book2.price="45";HashMap<String, Book> orderMap=new HashMap<String , Book>();orderMap.put("orderMap1", book1);orderMap.put("orderMap2", book2);ArrayList<Book> orderList=new ArrayList<Book>();orderList.add(book1);orderList.add(book2);Order order=new Order();order.id="1";order.OrderName="Book";order.bookMap=orderMap;order.bookList=orderList;Gson gson=new Gson();Type type=new TypeToken<Order>(){}.getType();String toJson=gson.toJson(order,type);System.out.println("Order--->JSON:\n"+toJson);Order fromJson=(Order)gson.fromJson(toJson,type);System.out.println("JSON--->Order:\n"+fromJson);}
}

输出:

Order--->JSON:
{"id":"1","OrderName":"Book","bookList":[{"id":"1001","name":"Java Think","price":"23"},{"id":"1002","name":"Gson Test","price":"45"}],"bookMap":{"orderMap2":{"id":"1002","name":"Gson Test","price":"45"},"orderMap1":{"id":"1001","name":"Java Think","price":"23"}}}
JSON--->Order:
Gson.Order@181eda8

转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/42242863    情绪控_

Android之GSON解析JSON相关推荐

  1. Android利用Gson解析Json数据

    其实,要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个 ...

  2. Android中Gson解析json数据使用@SerializedName注解

    @SerializedName 此注解作用在属性上,表明这个属性在序列化成Json的时候,需要将名字序列化成注解的value属性指定的值. 我们有一段json数据如下: { "id" ...

  3. Android 使用Gson解析json用法

    目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://co ...

  4. Android 使用Gson解析json案例详解

    一.目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https:// ...

  5. android gson解析封装,android之Gson解析json的封装

    首先需要导入Gson这个类以及gson的反射包 import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; 1. 解析 ...

  6. gson解析php,php,android_关于 Gson 解析JSON数据。。。,php,android - phpStudy

    关于 Gson 解析JSON数据... 1.首先,我是从服务器端传回来的JSON数据如下: {"info":"succeed","user_id&qu ...

  7. JSONObject 和 GSON 解析 JSON 数据详解(转)

    转载:http://www.jianshu.com/p/f99de3ec0636 点此进入:从零快速构建APP系列目录导图 点此进入:UI编程系列目录导图 点此进入:四大组件系列目录导图 点此进入:数 ...

  8. Java-json系列(一):用GSON解析Json格式数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

  9. GSON解析JSON保存到数据库

    今天给大家带来的文章为通过Gson解析json数据并快速保存至数据库的文章.我们要保存是json对象数组,本文中的json数组并非从后台获取,为了演示,直接手动构造. 需要保存到数据库的是手机的品牌和 ...

最新文章

  1. 用c语言写一个两线程程序,如何用C语言实现多线程
  2. Django报错:mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required, you have 0.9.3的解决办法
  3. python的闭包及装饰器
  4. 实用的 GitHub 仓库搜索技巧
  5. Java路径问题最终解决方案—可定位所有资源的相对路径寻址
  6. 双向链表的创建和相关操作
  7. 揭秘阿里机器翻译团队:拿下5项全球冠军,每天帮商家翻译7.5亿次
  8. android数据序列化的实现
  9. JavaScript DOM 4 - 属性 attribute vs property
  10. NCU SEM 发文检索2014年
  11. ubuntu下安装小企鹅输入法
  12. mysql年龄最大_使用MySQL子查询选择年龄最大的所有用户?
  13. 你有什么经验一定要分享给初入职场的新人?
  14. sourceinsight 查看源码的利器
  15. php学生在线交流平台,php学生社团活动报名系统
  16. matlab拟合数据并输出公式,曲线拟合以及生成公式
  17. 【Cherno的OpenGL视频】Uniforms in OpenGL
  18. tekton入门 - piplinerun
  19. k宝无法连接计算机,农行二代K宝插电脑上显示无法识别怎么办? 驱动已正确安装了,电脑的USB接口插其他U盘什么的都正常的...
  20. 沪指暴跌200点 两市超过四分之一股票跌停

热门文章

  1. php7 windows2008,【笔记】Windows Server2008 R2 安装 PHP7 缺少 API-ms-win-crt-runtime-l1-1-0.dll 解决方案...
  2. mysql 编译_mysql 5.7 编译——VS2017
  3. ttlsa教程系列之MySQL---MySQL/Galera集群-多主高可用性负载均衡
  4. Django restfulframework 开发相关知识 整理
  5. fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
  6. windows下使用Jenkins搭建CI持续集成平台(版本源码管理使用SVN)
  7. spark(一) build
  8. 泛型Generics
  9. ros 工作流程图4
  10. 人最大的荣耀不在于从未失败,而在于每次失败以后都能东山再起