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的使用总结的更多相关文章

  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. vmware安装win7提示No CD-ROM drive to use:GCDROM not loaded

    今天安装win7 64位的操作系统到vmware虚拟机,以为一切事如此的简单,因为自己以前经常拿vmware来装系统,结果确出现下面莫名其妙的错误: 提示说没有CD-ROM,可是我明明在vmware的 ...

  2. MyCAT全局序列号

    在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一.为此,MyCat 提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式. 本地文件方式 原理:此方式MyCA ...

  3. 使用PL/SQL工具比对表结构,同步表结构

    需求:Oracle数据库,B库和C库,某些表的表结构不一致,现在要求以C库为标准,同步更新B库表结构PL/SQL 连接到C库, Tools --> Compare User Objects .. ...

  4. Javascript数组常用方法

    一.forEach对数组的遍历 二.map返回经过运算的新数组 三.filter返回满足条件的新数组 四.返回数组前后元素运算的结果 五.every遍历数组每项元素是否满足某个条件,全部满足返回tru ...

  5. CSS3 media queries + jQuery实现响应式导航

    目的: 实现一个响应式导航,当屏幕宽度大于700px时,效果如下: 当屏幕宽度小于700px时,导航变成一个小按钮,点击之后有一个菜单慢慢拉下来: 思路: 1.为了之后在菜单上绑定事件,并且不向DOM ...

  6. HTML5网页打开摄像头,并拍照

    谷歌提高了安全要求,要摄像头必须用https 效果图:

  7. AngularJs $q promise

    angularjs提供的$q服务是对Promises规范的一个实现.$q服务可以把一段异步的代码封装成同步的样式. 为啥是样式,因为异步还是异步,它并不会柱塞代码,只是看起来像同步代码. $q.whe ...

  8. 获取linux服务器基本信息脚本

    为了方便日常运维写的一段简单脚本,用于集中获取服务器操作系统.CPU.内存使用.负载.硬盘使用.网络信息. 脚本比较简单,就不解释了,有兴趣的朋友请自行查看. #!/bin/bash##Name:sy ...

  9. php语言实现的7种基本的排序方法

    今天总结了一下常用的7种排序方法,并用php语言实现. 直接插入排序 /* * 直接插入排序,插入排序的思想是:当前插入位置之前的元素有序, * 若插入当前位置的元素比有序元素最后一个元素大,则什么也 ...

  10. JAVA 链表操作:单链表和双链表

    主要讲述几点: 一.链表的简介 二.链表实现原理和必要性 三.单链表示例 四.双链表示例 一.链表的简介 链表是一种比较常用的数据结构,链表虽然保存比较复杂,但是在查询时候比较便捷,在多种计算机语言都 ...