1. JSONArray对象里面的子对象可能并不是JSONObject类型
1.1 问题描述
feign方法接受的JSONObject对象里获取的JSONArray对象,对象循环的时候出现类型转换失败的错误。
发现版本:fastjson1.2.73+
1.2 代码如下
private long getRepeatQty(JSONArray array, String tableName, String pkName) {
String ids = "";
for (Object obj : array) {
JSONObject rowObj = (JSONObject)obj; //就是这里报错
String pkId = rowObj.getString( pkName);
ids += ",'" + pkId + "'";
}
}
调试发现里面的居然是HashMap对象
1.3 解决办法
循环体内多一次转换:
private long getRepeatQty(JSONArray array, String tableName, String pkName) {
String ids = "";
for (Object obj : array) {
JSONObject rowObj = (JSONObject)JSONObject.toJSON(obj); //多一次转换
String pkId = rowObj.getString( pkName);
ids += ",'" + pkId + "'";
}
}
参考文章:https://javastack.blog.csdn.net/article/details/107218327
文档更新时间: 2022-03-12 14:35 作者:张敏