[alibaba/fastjson]kotlin data class 在AS中(2.3.3||3.0 beta2)中报错,相同代码文件在IntelliJ IDEA中完美运行

2025-11-12 183 views
7

报错信息:com.alibaba.fastjson.JSONException: default constructor not found. class cn.xrsg.speedmealkotlin.ui.home.model.entity.StoreInfo

dataclass: data class StoreInfo(val storeName: String, //店铺名称 val storeLogo: String, //店铺Logo val storeDescribe: String, //店铺介绍 val storeAddress: String, //店铺地址 val storePhone: String, //联系电话 val storeRetreat: String, //是否支持退菜 0=>不支持,1=>支持 val storeLowerPrice: String//是否支持金额有小数点 0=>不支持 1=>支持 )

解析代码: val storeInfo = JSON.parseObject("{\"storeName\":\"123456\",\"storeLogo\":\"asdsadsa\",\"storeDescribe\":\"1\",\"storeAddress\":\"dsfds\",\"storePhone\":\"123456789\",\"storeRetreat\":\"456",\"storeLowerPrice\":\"456"}", StoreInfo::class.javaObjectType)

回答

2

什么版本?

9

检查在两个环境中引用的fastjson版本是否一致

9

1.2.37

5

都是1.2.37 不是Android版的

2

我用Kotlin data class 在 AS3.0 和 IntelliJ IDEA 中解析Json的时候都报错(fastJson版本是1.2.37):

data class Person(var name: String, var age: Int) fun main(args: Array) { val person = Person("jack", 10) val fastStr = JSON.toJSONString(person) println(fastStr) val fastPerson = JSON.parseObject(fastStr, Person::class.javaObjectType) println(fastPerson) } 输出 {"age":10,"name":"jack"} Exception in thread "main" com.alibaba.fastjson.JSONException: default constructor not found.class net.println.kotlin.Chapter4.Person ...

2

fastjson:1.1.62.android 也是default constructor not found. 试了试Gson是可以解析的

3

@wenshao sorry,可能是我使用的姿势不对? 我使用修复后的版本还是报这个错。 Android Studio Canary 3.0 Beta4 kotlin version 1.1.4-3

com.alibaba:fastjson:1.2.38com.alibaba:fastjson:1.1.63.android都是报这个错。

9

@wenshao @ZYRzyr 我这里也是还报错 default constructor not found.

示例代码 data class Bean(var name: String, var age: Int) val json = "{\"name\":\"victor\",\"age\":12}" val bean = JSON.parseObject(json, Bean::class.java)

Android Studio Canary 3.0 Beta4 kotlin version 1.1.4-3 implementation 'com.alibaba:fastjson:1.1.63.android'