美文网首页
JSONArray对象中的子对象可能并不是JSONObject类

JSONArray对象中的子对象可能并不是JSONObject类

作者: 木巽 | 来源:发表于2021-07-22 10:21 被阅读0次

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对象


image

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

相关文章

网友评论

      本文标题:JSONArray对象中的子对象可能并不是JSONObject类

      本文链接:https://www.haomeiwen.com/subject/qkeemltx.html