类型强制转换Bug:java.lang.ClassCastException: com.alibaba.fastjson.JSONArray cannot be cast to com.alibaba.fastjson.JSONObject

xa9qqrwz  于 2021-11-27  发布在  Java
关注(0)|答案(0)|浏览(1481)

com.alibaba:fastjson:1.1.70.android 类型强转Bug

JSONObject jsonObject = JSON.parseObject("{\"data\":[ ]}");
JSONObject obj = jsonObject.getJSONObject("data");

compile 'com.alibaba:fastjson:1.1.70.android'

以上代码报错:

Caused by: java.lang.ClassCastException: com.alibaba.fastjson.JSONArray cannot be cast to com.alibaba.fastjson.JSONObject
        at com.alibaba.fastjson.JSONObject.getJSONObject(JSONObject.java:110)
        at com.example.kuang.screenlockactivity.MainActivity.onCreate(MainActivity.java:35)

分析是:

// JSONObject.java
    public JSONObject getJSONObject(String key) {
        Object value = map.get(key);

        if (value instanceof JSONObject) {
            return (JSONObject) value;
        }

        if (value instanceof String) {
            return JSON.parseObject((String) value);
        }
        // 强制转换风险
        return (JSONObject) toJSON(value);
    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题