fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

[BUG] 2.0.52 JSONArray ClassCastException。使用 fastjson1 的 JSON.toJSON() 方法,转换后的数据中存在 com.alibaba.fastjson2.JSONArray 对象。

Open zhangbody opened this issue 1 year ago • 0 comments

问题描述

使用 fastjson1 的 JSON.toJSON() 方法,转换后的数据中存在 com.alibaba.fastjson2.JSONArray 对象。

环境信息

请填写以下信息:

  • OS信息:Windows 10
  • JDK信息:JDK信息:Oracle Java 1.8.0_381
  • 版本信息:Fastjson2 2.0.52

重现步骤

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

抛出异常,见日志输出。

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
 * JSON 处理方法
 * 
 * @author zhangrong
 * @date 2024/08/07
 */
public class Test {

  public static void main(String[] args) {
    Map map1 = new HashMap();

    List list1 = new LinkedList();
    map1.put("list1", list1);

    Map map2 = new HashMap();
    list1.add(map2);

    List list2 = new LinkedList();
    map2.put("list2", list2);

    Map map3 = new HashMap();
    list2.add(map3);

    List list3 = new LinkedList();
    map3.put("list3", list3);

    list3.add("str1");
    list3.add("str2");
    list3.add("str3");

    Object o1 = JSON.toJSON(map1);

    System.out.println(((JSONArray)((JSONObject)o1).get("list1")).get(0));
  }

}

期待的正确结果

使用 fastjson1 兼容 api 时,返回 fastjson1 的 JSONArray。

相关日志输出

Exception in thread "main" java.lang.ClassCastException: com.alibaba.fastjson2.JSONArray cannot be cast to com.alibaba.fastjson.JSONArray

zhangbody avatar Aug 07 '24 07:08 zhangbody