kotlin使用com.alibaba.fastjson.JSONException: default constructor not found

在使用Kotlin与Fastjson 1.1.62版本配合时,可能出现`default constructor not found`错误。推荐使用1.1.61稳定版以解决问题。对于Kotlin的data类和普通类,可以添加空构造器。异常源于1.1.62版本新增的Kotlin判断,而在Kotlin 1.1.4中,由于反射创建构造器时找不到对应类导致异常。期望Fastjson官方能尽快修复此问题。
摘要由CSDN通过智能技术生成

使用kotlin,在用fastjson来解析json数据时,出现这个错误
目前fastjson最新版本是1.1.62,不过还不稳定,出现这个问题建议使用1.1.61
github地址:https://github.com/ttarfall/fastjson
目前这个错误在使用kotlin的data数据类和普通数据类都会有,解决方法:

  • 使用1.1.61稳定版
  • 无使用 普通数据类 并且像这样多增加一个空构造器
class UserInfo{
   
    constructor()

    constructor(email: String, id: String, name: String)
}

期待官网能尽快更新这个问题
那下边我们来源码分析一下出现这个错误的原因:(这里主要比较的1.1.61和1.1.62)
由于官网是从1.1.61开始兼容kotlin解析,之前版本如果解析出错正常

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值