服务端返回数据时,多返回了很多不需要的东西,而且跟以前的字段还冲突(原本是一个放数组的字段,在一些不规则的返回值里面,可能某个item的数组就变成了string,最可恨的还是后台解决问题太慢了。为了不影响测试,只好自己手动写代码删除,等后台改好了再删除)不然fastjson解析就直接崩溃了。所以在加载之前,尝试使用jsonarray删掉一些能引起冲突的。
在得到一个jsonArray对象的时候,根据判断条件调用jsonArray.remove后,编译出错,错误提示android NoSuchMethodError: org.json.JSONArray.remove,网上解释说是api版本太低,我是在6.0下编译,模拟器是4.0的,觉得有这种可能。于是就治好重新创建一个jsonarray,然后把符合条件的都赋值给它,然后把它返回出去。
贴上解析方法
public JSONArray parseoldData(JSONArray array){
JSONArray mJsonArray = new JSONArray();
for(int i=0;i<array.length();i++){
try
{ //项目逻辑判断
JSONObject obj=array.getJSONObject(i);
if(obj.has("object_type")){
if(obj.getString("object_type").equals("5")){
mJsonArray.put(obj);
}
}
}catch (Exception e){
e.printStackTrace();
}
}
return mJsonArray;
}