fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

[BUG] 在Android SDK 34下JSON::toJSONString返回{}

Open sheng-ri opened this issue 1 year ago • 8 comments

问题描述

简要描述您碰到的问题。

普通class正常 我定义了这样一个record

public record Device(String username, String deviceName) {

    @Override
    public String toString() {
        return username + "@" + deviceName;
    }
}

使用JSON::toJSONString后返回"{}"

环境信息

请填写以下信息:

  • OS信息: Android 14
  • JDK信息:17
  • 版本信息:Fastjson2 2.0.40

重现步骤

如何操作可以重现该问题:

  1. 定义一个record类
  2. 新建对象
  3. 使用JSON::toJsonString并输出

期待的正确结果

对您期望发生的结果进行清晰简洁的描述。 返回{"deviceName":"2","username":"1"}等结果

相关日志输出

没有看到相关日志

附加信息

sheng-ri avatar Sep 21 '23 08:09 sheng-ri

在WIndows JDK 21环境下是正常的

sheng-ri avatar Sep 23 '23 09:09 sheng-ri

能帮忙调试看下这个值么?

package com.alibaba.fastjson2.util;

public class JDKUtils {
      public static final int JVM_VERSION;
}

wenshao avatar Oct 05 '23 04:10 wenshao

https://github.com/alibaba/fastjson2/releases/tag/2.0.41 问题已修复,请用新版本

wenshao avatar Oct 06 '23 02:10 wenshao

再次测试,问题仍然存在

调试变量数值

JDKUtils.JVM_VERSION = -1
JDKUtils.ANDROID_SDK_INT = 34

构建配置

compileSdk = 34
minSdk = 26
targetSdk = 34

sheng-ri avatar Oct 06 '23 14:10 sheng-ri

我目前没有这样的机器,需要晚点时间借机器来测试

wenshao avatar Dec 03 '23 04:12 wenshao

我目前没有这样的机器,需要晚点时间借机器来测试

理解,但是我也没有这样的机器,我只是在模拟器上测试app的时候发现的

sheng-ri avatar Dec 03 '23 05:12 sheng-ri

请问模拟器是AS自带的, 还是mumu6、mumu12、雷电

kraity avatar May 02 '24 10:05 kraity

@kraity 确实是在模拟器上跑的 随手测试的项目,已经放了很久了,忘记有没有真机测试了,而且我没有android 14的真机

sheng-ri avatar May 02 '24 12:05 sheng-ri