Skip to content

class com.alibaba.fastjson.JSONObject cannot be cast to class com.alibaba.fastjson2.JSONObject[BUG] #2665

@mineYso

Description

@mineYso

问题描述

使用FastJson1.x的api出现2.x的转型失败异常。

环境信息

  • OS信息: Windows 10 专业版 22H2 19045.4412
  • JDK信息:openjdk version "17.0.8" 2023-07-18
  • 版本信息:Fastjson2 2.0.49~2.0.51

重现步骤

如何操作可以重现该问题:

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public static void testList() {
        try
        {
            String json = "[\r\n"
                + "    {\r\n"
                + "        \"date\": \"2024-06-10\",\r\n"
                + "        \"slots\": [\r\n"
                + "            {\r\n"
                + "                \"createDate\": \"2024-06-10T11:54:58.240+01:00\",\r\n"
                + "                \"expireDate\": \"2024-06-10T11:59:58.240+01:00\",\r\n"
                + "                \"id\": 1176592662,\r\n"
                + "                \"intervention\": {\r\n"
                + "                    \"code\": \"FS\",\r\n"
                + "                    \"name\": \"FA Simple\"\r\n"
                + "                },\r\n"
                + "                \"timeslot\": {\r\n"
                + "                    \"code\": \"AM\",\r\n"
                + "                    \"end\": \"13:00\",\r\n"
                + "                    \"name\": \"Morning\",\r\n"
                + "                    \"start\": \"08:00\"\r\n"
                + "                }\r\n"
                + "            }\r\n"
                + "        ]\r\n"
                + "    },\r\n"
                + "    {\r\n"
                + "        \"date\": \"2024-06-10\",\r\n"
                + "        \"slots\": [\r\n"
                + "            {\r\n"
                + "                \"createDate\": \"2024-05-22T11:54:58.240+01:00\",\r\n"
                + "                \"expireDate\": \"2024-05-22T11:59:58.240+01:00\",\r\n"
                + "                \"id\": 1176592671,\r\n"
                + "                \"intervention\": {\r\n"
                + "                    \"code\": \"FS\",\r\n"
                + "                    \"name\": \"FA Simple\"\r\n"
                + "                },\r\n"
                + "                \"timeslot\": {\r\n"
                + "                    \"code\": \"PM\",\r\n"
                + "                    \"end\": \"18:00\",\r\n"
                + "                    \"name\": \"Afternoon\",\r\n"
                + "                    \"start\": \"13:00\"\r\n"
                + "                }\r\n"
                + "            }\r\n"
                + "        ]\r\n"
                + "    }\r\n"
                + "]";
            
            JSONArray jsonArr = JSONArray.parseArray(json);
            System.out.println(jsonArr.toJavaObject(List.class));
        }catch(Exception e) {
            e.printStackTrace();
        }
    }

期待的正确结果

能正常输出List信息,不再抛出转型异常

相关日志输出

java.lang.ClassCastException: class com.alibaba.fastjson.JSONObject cannot be cast to class com.alibaba.fastjson2.JSONObject (com.alibaba.fastjson.JSONObject and com.alibaba.fastjson2.JSONObject are in unnamed module of loader 'app')
at com.alibaba.fastjson2.reader.ObjectReaderImplList.createInstance(ObjectReaderImplList.java:302)
at com.alibaba.fastjson2.reader.ObjectReader.createInstance(ObjectReader.java:37)
at com.alibaba.fastjson.JSONArray.toJavaObject(JSONArray.java:877)
at com.test.TestMain.testMap(TestUrl.java:165)
at com.test.TestMain.main(TestUrl.java:115)

附加信息

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingfixed

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions