一、需求
近日有个需求需要调用银行接口查询交易明细、如果只有一条明细的话银行返回的是一个map,如果有多条信息的话银行返回的是一个list。由于结果不同,所以无法使用同样的JSONObject的方法去转换,所以我进行了如下 判断
1.先用Object对象接收银行交易明细信息
2.判断接收对象的上级接口是list还是map
3.进行转换
Object rows = queryBindCardInfo23Rsp.getList().get("LISTS");
List<TransInfo> row = new ArrayList<>();
if (rows instanceof List) {
row = JSONObject.parseArray(JSONObject.toJSONString(rows)).toJavaList(TransInfo.class);
}
if (rows instanceof Map) {
row.add(JSONObject.parseObject(JSONObject.toJSONString(rows), new TypeReference<TransInfo>() {
}));
}