大家都知道安卓客户端解析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;
}
}
网友评论