[alibaba/fastjson]在kotlin 使用TypeReference的fastjsonframework不能解析项目实体类

2025-11-03 737 views
2

java:

public class Test {

public static void  main() {
    String jsonString = "[{\"ptId\":1,\"ptName\":\"KeMotion\"},{\"ptId\":2,\"ptName\":\"KePlast\"},{\"ptId\":3,\"ptName\":\"KeTop\"}]";
    TypeReference type=new TypeReference<List<TestBean>>(){};
    List<TestBean> list= JSONObject.parseObject(jsonString, type.getType());
    for (TestBean testBean : list) {
        System.out.println(testBean.ptName);
    }
}
public static class  TestBean{
   public String  ptId;
    public  String ptName;
}

} 运行没有问题

kotlin:1.2.0 版本 object Test {

fun main() {
    val jsonString = "[{\"ptId\":1,\"ptName\":\"KeMotion\"},{\"ptId\":2,\"ptName\":\"KePlast\"},{\"ptId\":3,\"ptName\":\"KeTop\"}]"
    val type = object : TypeReference<List<TestBean>>() {

    }
    val list = JSONObject.parseObject<List<TestBean>>(jsonString, type.type)
    for (testBean in list) {
        println(testBean.ptName)
    }
}

class TestBean {
    var ptId: String? = null
    var ptName: String? = null
}

} kotlin 解析:错误日志: fastjson: Caused by: java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.keba.utils.Test$TestBean

回答

0

fastjson什么版本?

1

1.1.56.android 版本

0

https://github.com/alibaba/fastjson/releases/tag/1.1.67.android 用1.1.67.android试试问题是否还存在

7

好的,谢谢

3

没有问题了。谢谢了。