1、概念

Gson是谷歌发布的一个json解析框架

2、如何获取

github:https://github.com/google/gson

android studio使用

  1. compile 'com.google.code.gson:gson:2.7'

查看 最新版本号

下载最新的jar包 ,http://search.maven.org/#search%7Cga%7C1%7Ccom.google.code.gson

3、基于Gson封装的简单工具类JsonUtil

  1. package com.zyj.app.util;
  2.  
  3. import com.google.gson.Gson;
  4. import com.google.gson.JsonArray;
  5. import com.google.gson.JsonElement;
  6. import com.google.gson.JsonParser;
  7.  
  8. import java.util.ArrayList;
  9. import java.util.List;
  10.  
  11. /**
  12. * Created by ${zyj} on 2016/8/24.
  13. */
  14. public class JsonUitl {
  15.  
  16. private static Gson mGson = new Gson();
  17.  
  18. /**
  19. * 将json字符串转化成实体对象
  20. * @param json
  21. * @param classOfT
  22. * @return
  23. */
  24. public static Object stringToObject( String json , Class classOfT){
  25. return mGson.fromJson( json , classOfT ) ;
  26. }
  27.  
  28. /**
  29. * 将对象准换为json字符串 或者 把list 转化成json
  30. * @param object
  31. * @param <T>
  32. * @return
  33. */
  34. public static <T> String objectToString(T object) {
  35. return mGson.toJson(object);
  36. }
  37.  
  38. /**
  39. * 把json 字符串转化成list
  40. * @param json
  41. * @param cls
  42. * @param <T>
  43. * @return
  44. */
  45. public static <T> List<T> stringToList(String json ,Class<T> cls ){
  46. Gson gson = new Gson();
  47. List<T> list = new ArrayList<T>();
  48. JsonArray array = new JsonParser().parse(json).getAsJsonArray();
  49. for(final JsonElement elem : array){
  50. list.add(gson.fromJson(elem, cls));
  51. }
  52. return list ;
  53. }
  54.  
  55. }

4、JsonUtil的简单测试

4.1、定义bean对象

  1. package com.zyj.app.bean;
  2.  
  3. /**
  4. * Created by ${zyj} on 2016/9/5.
  5. */
  6. public class Me {
  7.  
  8. String name ;
  9. String age ;
  10.  
  11. public String getName() {
  12. return name;
  13. }
  14.  
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18.  
  19. public String getAge() {
  20. return age;
  21. }
  22.  
  23. public void setAge(String age) {
  24. this.age = age;
  25. }
  26. }

4.2、测试代码

  1. List<Me> list = new ArrayList<>() ;
  2. Me me1 = new Me() ;
  3. me1.setName( "name111");
  4. me1.setAge( "age111");
  5.  
  6. Me me2 = new Me() ;
  7. me2.setName( "name222");
  8. me2.setAge( "age222");
  9.  
  10. Me me3 = new Me() ;
  11. me3.setName( "name333");
  12. me3.setAge( "age333");
  13.  
  14. list.add( me1 ) ;
  15. list.add( me2 ) ;
  16. list.add( me3 ) ;
  17.  
  18. //测试一:把list对象转换成json字符串
  19. String json1 = JsonUitl.objectToString( list ) ;
  20. //日志打印
  21. KLog.d( "测试一 " + json1 );
  22.  
  23. //测试二:把json字符串转化成list集合
  24. List<Me> listMe = JsonUitl.stringToList( json1 , Me.class ) ;
  25. //日志打印
  26. for ( Me meTest : listMe ){
  27. KLog.d( "测试二 " + "name: " + meTest.getName() + " age: " + meTest.getAge() );
  28.  
  29. //测试三 : 把对象转化成json字符串
  30. String jsonTest3 = JsonUitl.objectToString( meTest ) ;
  31. KLog.d( "测试三 " + jsonTest3 );
  32. }

4.3、测试结果

  1. 测试一 [{"age":"age111","name":"name111"},{"age":"age222","name":"name222"},{"age":"age333","name":"name333"}]
  2. 测试二 name: name111 age: age111
  3. 测试三 {"age":"age111","name":"name111"}
  4. 测试二 name: name222 age: age222
  5. 测试三 {"age":"age222","name":"name222"}
  6. 测试二 name: name333 age: age333
  7. 测试三 {"age":"age333","name":"name333"}

  

  

  

  

Android Gson的使用总结的更多相关文章

  1. 【转】Android Gson的使用

    Android Gson 2014 年 05 月 22 日 android 目前的客户端大都有和服务端进行交互,而数据的格式基本就是json了,于是在Android开发中就经常用到json解析,方便的 ...

  2. Android Gson 操作

    JSON序列化后的数据不带类名与名命空间,所以这两个服务端跟客户端可以不对应,需要保证字段对应即可 Asp.net MVC端 using System; using System.Collection ...

  3. Android Gson解析

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

  4. Android Gson使用笔记

    最近在做一个java web service项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库. 发现了google的gson,因为之前对于protoco ...

  5. Android Gson深入分析

    眼下解析json有三种工具:org.json(Java经常使用的解析),fastjson(阿里巴巴project师开发的).Gson(Google官网出的).解析速度最快的是Gson,下载地址:htt ...

  6. Android Gson解析json详解

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

  7. android gson使用

    第一步注册:  compile 'com.google.code.gson:gson:2.6.2' 第二步初始化: Gson gson = new GsonBuilder() .setLenient( ...

  8. Android Gson解析复杂Json

    JSON原数据 {"total":1,"rows":[{"ID":1,"Title":"台州初级中学招收初一年 ...

  9. Android Gson解析json工具类封装

    package com.springSecurity.gson; import java.util.ArrayList; import java.util.List; import java.util ...

随机推荐

  1. CSS3 Media Queries实现响应式布局

    概念我就不在这里写啦.大家可以看看以下网页: http://www.runoob.com/cssref/css3-pr-mediaquery.html http://www.w3cplus.com/c ...

  2. 深入理解DOM事件机制系列第一篇——事件流

    × 目录 [1]历史 [2]事件冒泡 [3]事件捕获[4]事件流 前面的话 javascript操作CSS称为脚本化CSS,而javascript与HTML的交互是通过事件实现的.事件就是文档或浏览器 ...

  3. lintcode 最长上升连续子序列 II(二维最长上升连续序列)

    题目链接:http://www.lintcode.com/zh-cn/problem/longest-increasing-continuous-subsequence-ii/ 最长上升连续子序列 I ...

  4. 数据可视化-EChart2.0.0使用中遇到的2个问题

    之前项目中都是使用FusionChart和HighChart,基本都是没有购买商业许可.然后现在开发的系统需要交付给客户使用.所以现在图表控件不能直接使用FusionChart和HighChart,通 ...

  5. T-Sql学习系列完结

    T-Sql(一)简单语法 T-Sql(二)事务(Transaction) T-Sql(三)存储过程(Procedure) T-Sql(四)表关联和视图(view) T-Sql(五)xml操作 T-Sq ...

  6. PHP过滤各种HTML标签

    $str=preg_replace("/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i&q ...

  7. Masonry 当需要把某个控件进行隐藏的时候有警告的解决方案

    //查看全文 [self.moreBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo (self.conten ...

  8. 深入seajs源码系列三

    入口方法 每个程序都有个入口方法,类似于c的main函数,seajs也不例外.系列一的demo在首页使用了seajs.use(),这便是入口方法.入口方法可以接受2个参数,第一个参数为模块名称,第二个 ...

  9. 1Z0-053 争议题目解析690

    1Z0-053 争议题目解析690 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 690.The database users regularly complain about t ...

  10. 软件工程 Coding.net代码托管平台 Git初学者的使用总结 五步完成 程序,文件,文件夹的Git

    一.前言 第一次用git相关的命令行,我使用的是Coding.net代码托管平台.Coding.net 自主打造的基于 Git 的代码托管平台,提供高性能的远端仓库,还有保护分支,历史版本分屏对比. ...