Android Gson的使用总结
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"}
Android Gson的使用总结的更多相关文章
- 【转】Android Gson的使用
Android Gson 2014 年 05 月 22 日 android 目前的客户端大都有和服务端进行交互,而数据的格式基本就是json了,于是在Android开发中就经常用到json解析,方便的 ...
- Android Gson 操作
JSON序列化后的数据不带类名与名命空间,所以这两个服务端跟客户端可以不对应,需要保证字段对应即可 Asp.net MVC端 using System; using System.Collection ...
- Android Gson解析
目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://co ...
- Android Gson使用笔记
最近在做一个java web service项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库. 发现了google的gson,因为之前对于protoco ...
- Android Gson深入分析
眼下解析json有三种工具:org.json(Java经常使用的解析),fastjson(阿里巴巴project师开发的).Gson(Google官网出的).解析速度最快的是Gson,下载地址:htt ...
- Android Gson解析json详解
目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://co ...
- android gson使用
第一步注册: compile 'com.google.code.gson:gson:2.6.2' 第二步初始化: Gson gson = new GsonBuilder() .setLenient( ...
- Android Gson解析复杂Json
JSON原数据 {"total":1,"rows":[{"ID":1,"Title":"台州初级中学招收初一年 ...
- Android Gson解析json工具类封装
package com.springSecurity.gson; import java.util.ArrayList; import java.util.List; import java.util ...
随机推荐
- CSS3 Media Queries实现响应式布局
概念我就不在这里写啦.大家可以看看以下网页: http://www.runoob.com/cssref/css3-pr-mediaquery.html http://www.w3cplus.com/c ...
- 深入理解DOM事件机制系列第一篇——事件流
× 目录 [1]历史 [2]事件冒泡 [3]事件捕获[4]事件流 前面的话 javascript操作CSS称为脚本化CSS,而javascript与HTML的交互是通过事件实现的.事件就是文档或浏览器 ...
- lintcode 最长上升连续子序列 II(二维最长上升连续序列)
题目链接:http://www.lintcode.com/zh-cn/problem/longest-increasing-continuous-subsequence-ii/ 最长上升连续子序列 I ...
- 数据可视化-EChart2.0.0使用中遇到的2个问题
之前项目中都是使用FusionChart和HighChart,基本都是没有购买商业许可.然后现在开发的系统需要交付给客户使用.所以现在图表控件不能直接使用FusionChart和HighChart,通 ...
- T-Sql学习系列完结
T-Sql(一)简单语法 T-Sql(二)事务(Transaction) T-Sql(三)存储过程(Procedure) T-Sql(四)表关联和视图(view) T-Sql(五)xml操作 T-Sq ...
- PHP过滤各种HTML标签
$str=preg_replace("/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i&q ...
- Masonry 当需要把某个控件进行隐藏的时候有警告的解决方案
//查看全文 [self.moreBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo (self.conten ...
- 深入seajs源码系列三
入口方法 每个程序都有个入口方法,类似于c的main函数,seajs也不例外.系列一的demo在首页使用了seajs.use(),这便是入口方法.入口方法可以接受2个参数,第一个参数为模块名称,第二个 ...
- 1Z0-053 争议题目解析690
1Z0-053 争议题目解析690 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 690.The database users regularly complain about t ...
- 软件工程 Coding.net代码托管平台 Git初学者的使用总结 五步完成 程序,文件,文件夹的Git
一.前言 第一次用git相关的命令行,我使用的是Coding.net代码托管平台.Coding.net 自主打造的基于 Git 的代码托管平台,提供高性能的远端仓库,还有保护分支,历史版本分屏对比. ...