项目场景:
调用上游接口,上游返回xml格式数据, 我方通过xmlUtils将xml转为json后进行数据处理.
问题描述
读取json中数组时测试环境返回jsonArray类型的字段, 再生产确返回了jsonObject类型
计划中格式是这个样的
把生产报文拿下来进行编译是这样的,
原因分析:
看了一下转换前的报文,报文正常, 只不过一条数据的转换时被转成了对象,多条数据的报文转成了数组,测试环境一直是多条数据的情况下测试的, 导致上生产后发生异常.
解决方案:
在不确定是json数组还是json对象的字段调用下面通用方法,保证返回的事数组类型即可,只要格式可控,会少很多莫名问题.
public static JSONArray convert2Array(Object object){
if(object == null)
return null;
else if(object instanceof JSONArray)
return (JSONArray) object;
else if(object instanceof JSONObject){
JSONArray arr = new JSONArray();
arr.add(object);
return arr;
}else
return null;
}