alibaba / alibaba/fastjson2

[BUG] 反序列化错误

Open
#2,946 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
4.4k
Forks
613
Avg merge
1d 22h
Merged PRs (30d)
6

Description

### 问题描述
反序列化错误

### 环境信息
*请填写以下信息:*

- OS信息: Windows 11
- JDK信息: Java 21
- 版本信息:Fastjson2 2.0.52

### 重现步骤

共计两个错误,直接运行test方法即可,错误1:

```java
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.JSONWriter.Feature;
import com.alibaba.fastjson2.filter.Filter;
import org.junit.jupiter.api.Test;

import java.util.LinkedHashMap;
import java.util.Map;

public class JsonTest {

static final Filter filter = JSONReader.autoTypeFilter("JsonTest");

public static class User {

public final Map modules = new LinkedHashMap<>();
}

public static class Module {
}

@Test
public void test() {
User user = new User();
user.modules.put("1", new Module());
String json = JSONObject.toJSONString(user, Feature.WriteClassName);
JSON.parseObject(json, User.class, filter);
}
}
```

错误2:

```java
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.JSONWriter.Feature;
import com.alibaba.fastjson2.filter.Filter;
import org.junit.jupiter.api.Test;

import java.util.LinkedHashMap;
import java.util.Map;

public class JsonTest {

static final Filter filter = JSONReader.autoTypeFilter("JsonTest");

public static class User {

public final Map modules = new LinkedHashMap<>();
}

@Test
public void test() {
User user = new User();
user.modules.put("1", 100);
String json = JSONObject.toJSONString(user, Feature.WriteClassName);
JSON.parseObject(json, User.class, filter);
}
}
```

### 期待的正确结果
正确反序列化

### 相关日志输出
运行代码即可

#### 附加信息

Contributor guide

Open the contributing guide

Research direction

Start by running the two JsonTest.test reproductions on Java 21 with Fastjson2 2.0.52, using JSON.parseObject, autoTypeFilter, and WriteClassName as shown. Trace the deserialization path for both Map and Map cases, then verify both deserialize successfully without errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend-api-design
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.