Fastjson, JSONException: default constructor not found.

diewland.eth
1 min readNov 22, 2019

Follow this link in example 1. Data Class without Any Annotation.

https://github.com/alibaba/fastjson/wiki/Use-Fastjson-in-Kotlin

data class DataClassSimple(val a : Int, val b : Int)val dts = DataClassSimple(1,2)
val jsons = JSON.toJSONString(dts)
println(jsons)
val clzs = DataClassSimple::class
println(clzs.javaObjectType)
val dt2 = JSON.parseObject(jsons,clzs.javaObjectType)
println(dt2)

Output should be like this

{"a":1,"b":2}
class DataClassSimple
DataClassSimple(a=1, b=2)

But if you got this exception

Exception in thread "main" com.alibaba.fastjson.JSONException: default constructor not found. class model.DataClassSimple
at com.alibaba.fastjson.util.JavaBeanInfo.build(JavaBeanInfo.java:519)
at com.alibaba.fastjson.parser.ParserConfig.createJavaBeanDeserializer(ParserConfig.java:728)
at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:645)
at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:394)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:669)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:369)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:273)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:546)
at model.ShopSettingKt.main(ShopSetting.kt:39)
at model.ShopSettingKt.main(ShopSetting.kt)

Just add kotlin-reflect in build.gradle

implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"

Happy Fastjson 🎉 🎉

References

--

--