kotlin 使用FastJson报错JSONException: default constructor not found

Posted guangdeshishe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin 使用FastJson报错JSONException: default constructor not found相关的知识,希望对你有一定的参考价值。

Fastjson版本号:implementation ‘com.alibaba:fastjson:1.2.69’

错误信息:

com.alibaba.fastjson.JSONException: default constructor not found

User.kt

data class User(var name: String, var age: Int) {
}

问题分析:

网上找的结果都是说对象类少了无参的构造方法,那就加上吧
User.kt

data class User(var name: String, var age: Int) {
    constructor() : this("", 0)
}

可是依然报了该错误,通过了解FastJson源码,原来它需要通过反射拿到kotlin的构造方法,要使用kotlin反射则需要依赖【kotlin-reflect】:

implementation 'org.jetbrains.kotlin:kotlin-reflect:1.5.20'

加上上面依赖后,通过测试即使没有无参构造方法也是可以正常使用的

以上是关于kotlin 使用FastJson报错JSONException: default constructor not found的主要内容,如果未能解决你的问题,请参考以下文章

解决使用Redis时配置 fastjson反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support

fastjson解析php生成的json报错

fastjson 解析报错 com.alibaba.fastjson.JSONException: create instance error...

fastjson 将字符串转Java对象 日期序列化异常 日期格式报错解决

fastjson 将字符串转Java对象 日期序列化异常 日期格式报错解决

fastjson 返回json字符串,JSON.parse 报错