用gson,虽然方便,但是首先得对json解析有一定的了解,不然出了问题都不知道该怎么解决。
gson容易出问题的地方:
1、解析类型,数据类型建议全部转成String类型。
2、数据跟你做的Bean类不匹配,比如,你做的bean类中有个logo的字段,但是获取数据的时候这个数据没了。你的程序就会出问题,直接崩溃。gson的性格就是,你可以不解析,解析就一定得有,没有就是数据不匹配,崩溃。遇到这种情况,把多余的字段删除掉,保证你解析的字段都是一定存在的,剩下的字段只能使用json,一层一层解析出来。
下面放集中常见的Json解析方法:
某个单字段解析(也可以反过来当做String转成Json格式):
SONObject jsonObject = new JSONObject(s); String errorCode = jsonObject.getString("status");
数组解析(如果是多重数组嵌套,综合两个方法,循环解析下去):
JSONObject jsonObject = new JSONObject(s);//字符串 s JSONArray jsonArray = jsonObject1.getJSONArray("list");//list 你的数组名 List<Bean> list = new ArrayList<Bean>(); for (int i = 0; i < jsonArray.length(); i++) { Log.e("jsonArray_detail", jsonArray.get(i).toString() + ""); Bean itemBean = new SellDetailReplyBean(); Gson gson = new Gson(); itemBean = gson.fromJson(jsonArray.get(i).toString(), Bean.class); list.add(itemBean); }
记得try{}catch(Exception e){}