24.Android网络通讯-Gson解析Json

今天教大家用Gson 来解析json

导入Gson的方法自行百度!

准备工作:用Android Studio的小伙伴可以装一个插件,gsonformat,不会装的哥们给你们个链接
http://blog.csdn.net/dakaring/article/details/46300963

用eclipse的小伙伴也不要着急,有个秘密武器送给你,去下载吧!

http://download.csdn.net/download/zxc472504515/9986483
先上工具类,然后做解析

 public final class JSONUtils {
 //解析jsonobject,以{}开头和结尾
	public static <T> T parseJSON(String jsonStr, Class<T> t) {
		Gson gson = new Gson();
		T bean = gson.fromJson(jsonStr, t);
		return bean;
	}

	/**
	 * //jsonarry,以[]开头和结尾
	 * @param response
	 * @param type
	 *           Type type = new TypeToken< ArrayList<实体类名>>() {  }.getType();
	//							 *          
	 * @return
	 */
	public static <T> T parseJSONArray(String response, Type type) {
		Gson gson = new Gson();
		T data = gson.fromJson(response, type);
		return data;
	}
	//把map转为String,很少用
	public static <T> String mapToJson(Map<String, T> map) {
		Gson gson = new Gson();
		String jsonStr = gson.toJson(map);
		return jsonStr;
	}

}

第一种,上数据,jsonobject,以{}开头和结尾

{"error_code":10005,"reason":"应用未审核超时,请提交认证"}

用Gsonformat解析好的javabean如下

 public class Man {


    /**
     * error_code : 10005
     * reason : 应用未审核超时,请提交认证
     */

    private int error_code;
    private String reason;

    public int getError_code() {
        return error_code;
    }

    public void setError_code(int error_code) {
        this.error_code = error_code;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }
}

关键来了

 //参数第一个   你拿到那段json数据 ;参数第二个   就是那个类名 
                Man man = JSONUtils.parseJSON(ST, Man.class);
                //获得错误码
                int error_code = man.getError_code();
                //错误原因
                String reason = man.getReason();

至此第一种类型的就解析完了

第二种 ,上数据 ,jsonarry以[]开头和结尾。

[
    {
        "name": "张三",
        "age": 18
    },
    {
        "name": "李四",
        "age": 19
    }
]

用Gsonformat解析好的javabean如下

public class Man {


    /**
     * name : 张三
     * age : 18
     */

    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

注意导包导这个,不然会出错
import java.lang.reflect.Type;
import com.google.gson.reflect.TypeToken;

接下来好戏来了

 Type type = new TypeToken<ArrayList<Man>>() {  }.getType();
 //获得了一个Man(类名)的集合
                ArrayList<Man> first  = JSONUtils.parseJSONArray(st, type);
                 //获得第一个人的年龄
                int age = first.get(0).getAge();
                Log.e("888", ""+age);
                打印下是18岁哦!


至此用Gson解析Jsonobject和jsonArray都完成了!

写的不好,多多见谅!

本人QQ:2973901695,欢迎交流!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值