Android_json解析

json 解析
我个人项目的是这样处理的

利用gson等注解式框架

符合程序员偷懒原则
首先引入了一个泛型类,T 你可以是整个整体OBject,也可以是List 中的子对象。
BaseResult 是定义了一些模板的属性,再配合泛型,有了它避免再定义一些重复的代码字段

public class BaseResult<T> implements Serializable{

 
    public static final int RESULT_SUCCESS = 0;

    private int code;
    private String message;

    private T data;


    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }



    public boolean isOk() {
        return code == RESULT_SUCCESS;
    }
}

如何使用

  • 第一种
    比如你有CourseInfo对象
 BaseResult<CourseInfo> courseInfoBaseResult = AppContext.createGson().fromJson(response,
 new TypeToken<BaseResult<CourseInfo>>() {}.getType());
  • 第二种
 BaseResult courseInfoBaseResult = AppContext.createGson().fromJson(response,BaseResult.class);

手动解析

比如有个String json字符串。
先利用JsonParser将json转成JsonObject,然后通过它的get("字段名””)转成你想要的的类型。
优点:不用再额外加个类,适用于获取小部分解析数据

 				JsonObject jsonObject = (JsonObject) new JsonParser().parse(tipContent);
                        if (jsonObject != null) {
                            JsonElement mcontent = jsonObject.get("mcontent");
                            JsonElement serv_info1 = jsonObject.get("serv_info");
                            if (mcontent != null) {
                                tipContent = mcontent.getAsString();
                            } else if
                                (serv_info1 != null) {
                                    JsonObject asJsonObject = serv_info1.getAsJsonObject();
                                    tipContent = asJsonObject.get("msg").getAsString();
                                    String serv_name = asJsonObject.get("serv_name").getAsString();
                                    tipContent = String.format("服务器%s%s", serv_name, tipContent);
                                }
                            }
                        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值