如图,当我转化这个数组时,因为这个数组里有空值就抛出了异常,我用debug走,发现到了这个转换json这一步就会直接跳转到了这两个页面。
搞不清楚怎么会发生这个跳转,当数组里没空值时不会发生这个情况
两种方法参考:
1 TaskDetail成员变量改为允许空值
2 通过AOP拦截 parseArray的转换过程,逢null转""或0
1.可以在TaskDetail里面的get方法判断一下,如果是null,则返回空字符串,
2.写个方法处理一下null问题,参考:
//判断当前字符串如果为空或者Null则返回字符串 空 ""
public static Object isNullReturnEmpty(Object obj){
if(null == obj || "".equals(obj) ){
return "";//如果获取数据失败,则返回-
}
return obj;
}
/*
* 将List<map>转换为JSONArray,将null替换为""
*/
public static JSONArray parseJSONArrayForListMap(List<Map> listMap) {
JSONArray array = new JSONArray();
for(Map mmp : listMap) {
JSONObject mmpJson = new JSONObject();
Iterator iter = mmp.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = isNullReturnEmpty(entry.getValue());
mmpJson.put(key+"", val);
}
array.add(mmpJson);
}
return array;
}
想看下你的 taskDetails 的值是多少