首页投稿(暂停使用,暂停投稿)

Gson解析json数据实例

2017-07-27  本文已影响0人  杰克船长爱萝莉

大家都知道安卓客户端解析json数据的第三方有许多框架fastjson  Gson等,现在为大家推荐Gson。下面是原因。

除了Gson 还有阿里的fastjson,但是相比较来说Gson更加的稳定,fastJson速度会更快。身为程序员的我们在保证程序稳定运行的情况下,个人推荐使用Gson,下面放入一个 个人封装的解析实体类(干货哦)

public class JsonUtil {

@SuppressWarnings("unchecked")

public staticT fromJson(String json, Class type) {

Tt =null;

try{

Gson gson =newGson();

t = gson.fromJson(json, type);

}catch(Exception e) {

//TODO: handle exception

}

returnt;

}

public static List getList(String jsonString,Type type){

List list=null;

try{

Gson gson =newGson();

list = gson.fromJson(jsonString, type);

}catch(Exception e) {

}

returnlist;

}

/**

*将对象转换为json

*@param

*@paramobj

*@return

*/

public static String toJson(Tobj) {

String jsonStr =null;

try{

Gson gson =newGson();

jsonStr=gson.toJson(obj);

}catch(Exception e) {

}

returnjsonStr;

}

使用的话  :返回的json数据如果是单个数据化的可以调用 

SignBean signBeens = JsonUtil.fromJson(s, SignBean.class);

SignBean是一个客户端封装的实体类,s标识返回的json数据,此时signBeens表示解析后数据(已经将对应的json数据转出转换成对应的实体类,此时我们只需要对该实体类的属性进行操作即可,记住重点SignBean 的属性名一定要和返回的json数据名相同)

返回的json数据如果是个集合呢:

List<SignBean> signBeens= (List<SignBean>) JsonUtil.getList(s,new TypeToken<ArrayList<SingBean>>() {}.getType());

此时SignBeans 就是解析过后的集合,同上;操作该集合的对象的各个属性就可以进行操作返回数据。

Textview te=findviewbyId*(R.id.vv);

te.settext(signbeens.get(0).getSigned+"");

下面贴出来 SignBean的实体类:

public class SignBean implements Serializable {

//今天是否签到

public int singed;

//是否签到成功

public intsignSuccess;

publicListmlistDesc;

public intnum;

public intgetNum() {

returnnum;

}

public voidsetNum(intnum) {

this.num= num;

}

publicList getMlistDesc() {

returnmlistDesc;

}

public voidsetMlistDesc(List mlistDesc) {

this.mlistDesc= mlistDesc;

}

public intgetSignSuccess() {

returnsignSuccess;

}

public voidsetSignSuccess(intsignSuccess) {

this.signSuccess= signSuccess;

}

public intgetSinged() {

returnsinged;

}

public voidsetSinged(intsinged) {

this.singed= singed;

}

}

上一篇 下一篇

猜你喜欢

热点阅读