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"}

  

  

  

  

时间: 2024-10-10 13:31:01

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

【转】Android Gson的使用

Android Gson 2014 年 05 月 22 日 android 目前的客户端大都有和服务端进行交互,而数据的格式基本就是json了,于是在Android开发中就经常用到json解析,方便的是Google已经为我们提供了一个很棒的json解析库–gson,那么今天就来总结分享下gson的各种用法. gson的官方下载地址:google-gson 单个对象 首先我们来看一个最简单的用法,假设json的数据格式是这样的: { "id": 100, "body"

Android Gson解析多层嵌套复杂数据

目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://code.google.com/p/google-gson/ 什么是JSON: JSON即JavaScript Object Natation, 它是一种轻量级的数据交换格式, 与XML一样, 是广泛被采用的客户端和服务端交互的解决方案. JSON对象:  JSON中对象(Object)以"{"

Android Gson解析复杂Json

JSON原数据 {"total":1,"rows":[{"ID":1,"Title":"台州初级中学招收初一年级体育特长生的通告","Content":"","Type":"01","ReceiveUserName":"蔡婧怡","IsRead":0,"Sen

Android Gson使用入门及GsonFormat插件的使用

Gson 是 Google 官方提供的用来在 Java 对象和 JSON 之间进行互相转换的Java类库. 我之前在使用Eclipse开发Android的时候,并没有经常使用Gson,而是使用原生的JSONObject解析,最近转用Android Studio,配合该IDE里面强大的插件,使用Gson很大程度地提高了开发效率.本篇博客将介绍Gson的基本使用方法,配合实际案例体会Gson带来的便捷开发体验. 1.待解析的Json数据 { "code": 0, "msg&quo

android gson使用--json2对象与对象2json

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 其实,要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Java对象,或是将一个Java对象转换为相应的JSON数据. 1.GSON的两个重要方法 在GSON的API中,提供了两个重要的

Android Gson使用笔记

最近在做一个java web service项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库. 发现了google的gson,因为之前对于protocolbuf有一些了解,带着一些好奇心,我开始使用了gson. 经过比较,gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段. 下面是一个简单的例子:

android Gson解析问题

1,个人推荐使用这个库来解析 JSON,不过我在使用时遇到了这如下问题 报 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 后来我改了一下 服务器返回的 JSON 由 原来的[] 最外层 改成 {}为最外层,就可以了

Android Gson解析

目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://code.google.com/p/google-gson/ 什么是JSON:   JSON即JavaScript Object Natation, 它是一种轻量级的数据交换格式, 与XML一样, 是广泛被采用的客户端和服务端交互的解决方案. JSON对象:    JSON 中对象(Object)以"{

Android Gson解析json工具类封装

package com.springSecurity.gson; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com