1、概念

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

2、如何获取

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

android studio使用

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

查看 最新版本号

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

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

package com.zyj.app.util;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser; import java.util.ArrayList;
import java.util.List; /**
* Created by ${zyj} on 2016/8/24.
*/
public class JsonUitl { private static Gson mGson = new Gson(); /**
* 将json字符串转化成实体对象
* @param json
* @param classOfT
* @return
*/
public static Object stringToObject( String json , Class classOfT){
return mGson.fromJson( json , classOfT ) ;
} /**
* 将对象准换为json字符串 或者 把list 转化成json
* @param object
* @param <T>
* @return
*/
public static <T> String objectToString(T object) {
return mGson.toJson(object);
} /**
* 把json 字符串转化成list
* @param json
* @param cls
* @param <T>
* @return
*/
public static <T> List<T> stringToList(String json ,Class<T> cls ){
Gson gson = new Gson();
List<T> list = new ArrayList<T>();
JsonArray array = new JsonParser().parse(json).getAsJsonArray();
for(final JsonElement elem : array){
list.add(gson.fromJson(elem, cls));
}
return list ;
} }

4、JsonUtil的简单测试

4.1、定义bean对象

package com.zyj.app.bean;

/**
* Created by ${zyj} on 2016/9/5.
*/
public class Me { String name ;
String age ; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getAge() {
return age;
} public void setAge(String age) {
this.age = age;
}
}

4.2、测试代码

        List<Me> list = new ArrayList<>() ;
Me me1 = new Me() ;
me1.setName( "name111");
me1.setAge( "age111"); Me me2 = new Me() ;
me2.setName( "name222");
me2.setAge( "age222"); Me me3 = new Me() ;
me3.setName( "name333");
me3.setAge( "age333"); list.add( me1 ) ;
list.add( me2 ) ;
list.add( me3 ) ; //测试一:把list对象转换成json字符串
String json1 = JsonUitl.objectToString( list ) ;
//日志打印
KLog.d( "测试一 " + json1 ); //测试二:把json字符串转化成list集合
List<Me> listMe = JsonUitl.stringToList( json1 , Me.class ) ;
//日志打印
for ( Me meTest : listMe ){
KLog.d( "测试二 " + "name: " + meTest.getName() + " age: " + meTest.getAge() ); //测试三 : 把对象转化成json字符串
String jsonTest3 = JsonUitl.objectToString( meTest ) ;
KLog.d( "测试三 " + jsonTest3 );
}

4.3、测试结果

测试一 [{"age":"age111","name":"name111"},{"age":"age222","name":"name222"},{"age":"age333","name":"name333"}]
测试二 name: name111 age: age111
测试三 {"age":"age111","name":"name111"}
测试二 name: name222 age: age222
测试三 {"age":"age222","name":"name222"}
测试二 name: name333 age: age333
测试三 {"age":"age333","name":"name333"}

  

  

  

  

最新文章

  1. MATLAB如何定义函数
  2. 从0到1---“保多多”APP的开发(一)
  3. XJOI网上同步训练DAY2 T1
  4. ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版
  5. JVM中GC浅解:垃圾回收的了解
  6. 【原创】Nginx+PHP-FPM优化技巧总结
  7. Service的绑定过程
  8. AJAX随笔1
  9. 初识KNN
  10. C# Work PPT to PDF
  11. Feign使用Hystrix
  12. java Future用法和意义一句话击破
  13. 五子棋游戏SRS文档
  14. 未能找到temp\select2.cur的一部分
  15. 错误不能中断(不许因错误或异常而产生阻断性Bug)
  16. 3.10 C++虚基类 虚继承
  17. day 20 collection模块 time 模块 os 模块
  18. PHP:第一章——PHP中逻辑运算符的使用方法
  19. NAT(网络地址转换)
  20. tarjan算法+缩点--cojs 908. 校园网

热门文章

  1. Xdebug+ZendStudio配置
  2. java静态代理与动态代理
  3. Spark中决策树源码分析
  4. .NET足球赛事资料数据库平台SmartLottery开源发布——全球足球联赛应有尽有
  5. mac下安装tomcat
  6. Objective-C中的继承和多态
  7. Java面向对象练习
  8. MVC html.actionlink
  9. swift 中指针的使用UnsafeMutablePointer
  10. Hammer.js分析(四)——recognizer.js