问题描述
对于字符串里本身就是有[],如果里面就1份数据,转回来会丢失[]。如果里面多份数据,则会保留[]
环境信息
- JDK信息: OpenJdk21
- 版本信息:2.0.61
重现步骤
如何操作可以重现该问题:
@Getter
@Setter
class TestString {
String apiAuth;
}
public static void main(String[] args) {
String text1 = "{\"apiAuth\":[\"权限1\",\"权限2\"]}";
TestString testString = JSON.parseObject(text1, TestString.class);
System.out.println(JSON.toJSONString(testString));
String text2 = "{\"apiAuth\":[\"权限1\"]}";
TestString testString2 = JSON.parseObject(text2, TestString.class);
System.out.println(JSON.toJSONString(testString2));
String text3 = "{\"apiAuth\":[\"权限1\"]}";
String s3 = JSON.parseObject(text3, String.class);
System.out.println(s3);
}
期待的正确结果
即使[]里一份数据,反序列化回来的时候继续保持
相关日志输出
如果不是反序列化对象则会保留,请看s3的输出,上面三个输出如下:
{"apiAuth":"["权限1","权限2"]"}
{"apiAuth":"权限1"} // 这个不对,自动给我丢了[]
{"apiAuth":["权限1"]}
附加信息
如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。
问题描述
对于字符串里本身就是有[],如果里面就1份数据,转回来会丢失[]。如果里面多份数据,则会保留[]
环境信息
重现步骤
如何操作可以重现该问题:
期待的正确结果
即使[]里一份数据,反序列化回来的时候继续保持
相关日志输出
如果不是反序列化对象则会保留,请看s3的输出,上面三个输出如下:
{"apiAuth":"["权限1","权限2"]"}
{"apiAuth":"权限1"} // 这个不对,自动给我丢了[]
{"apiAuth":["权限1"]}
附加信息
如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。