Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] JSONB反序列化成Kotlin 对象时崩溃 #736

Closed
xiaolei123 opened this issue Sep 6, 2022 · 2 comments
Closed

[BUG] JSONB反序列化成Kotlin 对象时崩溃 #736

xiaolei123 opened this issue Sep 6, 2022 · 2 comments
Labels
bug Something isn't working
Milestone

Comments

@xiaolei123
Copy link

问题描述

我在使用FastJson2的时候,把对象序列化成字节数组,并且反序列化回来时,发生了崩溃现象,请帮忙看看解决下噻。

环境信息

请填写以下信息:

  • OS信息: Android 10
  • JDK信息: -
  • 版本信息:-

重现步骤

操作步骤:

  1. 新建一个Kotlin的Test类
  2. 使用 JSONB.toBytes(test) 序列化成字节数组
  3. 使用 JSONB.parseObject(bytes,Test::class.java) 反序列化时,发生崩溃

这个是对应的Kotlin的类

import java.util.*

data class Test(
    var a: String,
    var b: String,
    var c: String,
    var d: Int = 1,
    var e: Int = 9999,
    var f: Int = 0,
    var g: Calendar = Calendar.getInstance(),
    var h: Calendar = Calendar.getInstance(),
    var i: Calendar = Calendar.getInstance(),
    var j: String = "",
    var k: String = "",
    var l: String = "",
    var m: Int = 0,
    var n: String = "",
    var o: Int = 0,
    var p: Float = 0f,
    var q: Float = 0f,
    var r: Boolean = false,
    var s: Boolean = false,
    var t: Boolean = false,
    var u: String = "",
    var v: Int = 0,
    var w: Int = 0,
    var x: Int = 0,
    var y: String = "",
    var z: String = "",
    var a1: Int = 1,
    var a2: Calendar = Calendar.getInstance(),
    var a3: Int = 0
) {
    var a4: String = ""
    var a5: String = ""
    var a6: Int = 0
}

期待的正确结果

正常的序列化,和反序列化

相关日志输出

Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
        at com.alibaba.fastjson2.reader.ObjectReaderCreator.createObjectReaderWithCreator(ObjectReaderCreator.java:329)
        at com.alibaba.fastjson2.reader.ObjectReaderCreator.createObjectReader(ObjectReaderCreator.java:648)
        at com.alibaba.fastjson2.reader.ObjectReaderProvider.getObjectReader(ObjectReaderProvider.java:729)
        at com.alibaba.fastjson2.reader.ObjectReaderProvider.getObjectReader(ObjectReaderProvider.java:640)
        at com.alibaba.fastjson2.JSONB.parseObject(JSONB.java:327)
        at me.test.datacenter.MainActivity.onCreate(MainActivity.kt:20)

附加信息

--

@xiaolei123 xiaolei123 added the bug Something isn't working label Sep 6, 2022
@wenshao
Copy link
Member

wenshao commented Sep 7, 2022

https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.13-SNAPSHOT/
这个问题已经修过过,请用2.0.13-SNPASHOT版本验证,2.0.13版本预计在9月12日发布。

当前版本引入kotlin-reflect依赖也可以解决问题

@wenshao wenshao added this to the 2.0.13 milestone Sep 7, 2022
wenshao added a commit that referenced this issue Sep 7, 2022
@wenshao
Copy link
Member

wenshao commented Sep 10, 2022

https://github.com/alibaba/fastjson2/releases/tag/2.0.13
2.0.13版本已经发布,请用帮忙用新版本验证

@wenshao wenshao closed this as completed Sep 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants