fastjson2
fastjson2 copied to clipboard
[BUG] 反序列化List时数据重复
问题描述
简要描述您碰到的问题。 当List泛型不为String时 反序列化会出现数据重复
环境信息
请填写以下信息:
- OS信息: [e.g.:Windows 11]
- JDK信息: [e.g.:Oraclejdk 21]
- 版本信息:[e.g.:Fastjson2 2.0.41]
重现步骤
如何操作可以重现该问题:
package org.example;
import com.alibaba.fastjson2.JSON;
import lombok.Data;
import java.util.List;
public class Test {
public static void main(String[] args) {
Role adminRole = new Role("admin", "管理员");
Role userRole = new Role("user", "用户");
User user = new User("root", "123456", List.of(adminRole, userRole));
String json = JSON.toJSONString(user);
System.out.println(json);
User newUser = JSON.parseObject(json, User.class);
System.out.println(newUser);
}
@Data
public static class User {
private final String username;
private final String password;
private final List<Role> roles;
}
@Data
public static class Role {
private final String name;
private final String description;
}
}
打印的结果
{"password":"123456","roles":[{"description":"管理员","name":"admin"},{"description":"用户","name":"user"}],"username":"root"} Test.User(username=root, password=123456, roles=[Test.Role(name=admin, description=管理员), Test.Role(name=user, description=用户), Test.Role(name=admin, description=管理员), Test.Role(name=user, description=用户)])
期待的正确结果
对您期望发生的结果进行清晰简洁的描述。
相关日志输出
请复制并粘贴任何相关的日志输出。
附加信息
如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson/2.0.42-SNAPSHOT/ 请帮忙用2.0.42-SNAPSHOT版本验证,正式版本预计在周末(11月5日)发布。
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson/2.0.42-SNAPSHOT/ 请帮忙用2.0.42-SNAPSHOT版本验证,正式版本预计在周末(11月5日)发布。
BUG依旧存在 没有任何变化
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson/2.0.42-SNAPSHOT/ 请帮忙用2.0.42-SNAPSHOT版本验证,正式版本预计在周末(11月5日)发布。
晚上我提PR处理
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson/2.0.43-SNAPSHOT/ 请帮忙用2.0.43-SNAPSHOT版本验证,正式版本预计在12月初发布。
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson/2.0.43-SNAPSHOT/ 请帮忙用2.0.43-SNAPSHOT版本验证,正式版本预计在12月初发布。
没问题了