fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

[BUG]字符串 转 实体类数组出错

Open kinghom opened this issue 3 years ago • 16 comments

微信截图_20220720114507

kinghom avatar Jul 20 '22 05:07 kinghom

222 这是实体类

kinghom avatar Jul 20 '22 05:07 kinghom

11 这捕抓到的异常

kinghom avatar Jul 20 '22 05:07 kinghom

麻烦提供下case(而不是图片),方便构建例子,复现问题

wsxe9988 avatar Jul 20 '22 05:07 wsxe9988

已经收到你的飞鸽传书啦....

kinghom avatar Jul 20 '22 05:07 kinghom

麻烦提供下case(而不是图片),方便构建例子,复现问题

你好 你说的是 把代码贴上来吗?

kinghom avatar Jul 20 '22 05:07 kinghom

var str = "[\n" + " {\n" + " "id": "82646a0f-3556-4d04-899d-c5e1283575d4",\n" + " "cagetory": "",\n" + " "name": "Mars",\n" + " "subName": "",\n" + " "uuid": ""\n" + " },\n" + " {\n" + " "id": "a6ad62bb-55bd-44e8-a29e-cd6535e3b5af",\n" + " "cagetory": "",\n" + " "name": "DT02",\n" + " "subName": "",\n" + " "uuid": ""\n" + " },\n" + " {\n" + " "id": "67c227a6-a1f3-4e3d-8f06-ba408d160a0f",\n" + " "cagetory": "",\n" + " "name": "RMA",\n" + " "subName": "",\n" + " "uuid": ""\n" + " }\n" + " ]"

            var list = str.parseArray<F1CheckItem>()

            Log.e("kinghom:", "array:"+list.size)

kinghom avatar Jul 20 '22 06:07 kinghom

class F1CheckItem( var id: String = "", var cagetory: String = "", var name: String = "", var subName: String = "", var uuid: String = "", )

kinghom avatar Jul 20 '22 06:07 kinghom

@wsxe9988 大佬 这个咋解决 一直报数组越界异常

kinghom avatar Jul 20 '22 08:07 kinghom

什么版本?报错堆栈信息发一下

wenshao avatar Jul 20 '22 13:07 wenshao

什么版本?报错堆栈信息发一下

java.lang.ArrayIndexOutOfBoundsException: length=0; index=0

最新的版本 报这个异常 没搞明白啥情况 后面我随便写了一个很简单json字符串 也转换失败 @wenshao 大佬麻烦看一下

kinghom avatar Jul 21 '22 00:07 kinghom

还有我发现了我把parseArray< F1CheckItem >() 改成 parseArray() 是可以转换,也就是不指定bean类型的时候转换成功,那javabean 应该怎么写才可以转换(我上面有写F1CheckItem 你看看有没有问题)?

kinghom avatar Jul 21 '22 00:07 kinghom

这个是什么语言?kotlin?用的fastjson是什么版本,请描述清楚一些

wenshao avatar Jul 21 '22 01:07 wenshao

这个是什么语言?kotlin?用的fastjson是什么版本,请描述清楚一些

代码用kotlin,库用的是fastjson2-kotlin:2.0.8

kinghom avatar Jul 21 '22 01:07 kinghom

您好, 2.0.9版本无问题 #576 , 试试升级2.0.9调试, 检查是否导入import com.alibaba.fastjson2.parseArray

kraity avatar Jul 22 '22 01:07 kraity

您好, 2.0.9版本无问题 #576 , 试试升级2.0.9调试, 检查是否导入import com.alibaba.fastjson2.parseArray

更新了fastjson2-kotlin:2.0.9 问题依然出现 同样的报数组越界

kinghom avatar Jul 22 '22 03:07 kinghom

试试使用原始方式

val list = JSON.parseArray(
     str, F1CheckItem::class.java
)

若无异常, 请检查kotlin版本是否支持内联函数和具体化的类型参数

建议评论里贴上完整的代码, 根据你现在提供的环境和代码我们测试正常

kraity avatar Jul 22 '22 04:07 kraity