alibaba / alibaba/fastjson2

[FEATURE]

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

Description

### 请描述您的需求或者改进建议
*对您想要需求或建议的清晰简洁的描述。*
已有的objectReader获取逻辑是先获取默认的reader,如果获取到了就直接返回,而不再获取用户自定义的reader,这样导致无法对有默认reader的类型,再自定义reader,为啥要这样做?能不能把用户自定义的reader提到默认reader前面。

public ObjectReader getObjectReader(JSONReader jsonReader) {
if (initReader != null) {
return initReader;
}

if (reader != null) {
return reader;
}

ObjectReader formattedObjectReader = createFormattedObjectReader(fieldType, fieldClass, format, locale);
if (formattedObjectReader != null) {
return reader = formattedObjectReader;
}

if (fieldClass != null && Map.class.isAssignableFrom(fieldClass)) {
return reader = ObjectReaderImplMap.of(fieldType, fieldClass, features);
} else if (fieldClass != null && Collection.class.isAssignableFrom(fieldClass)) {
return reader = ObjectReaderImplList.of(fieldType, fieldClass, features);
}

return reader = jsonReader.getObjectReader(fieldType);
}

### 请描述你建议的实现方案
*对您想要需求或建议的实现方案的详细描述。*

### 描述您考虑过的替代方案
*对您考虑过的任何替代解决方案或功能的描述。*

#### 附加信息
*如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。*

Contributor guide

Open the contributing guide

Research direction

Start with ObjectReader.getObjectReader(JSONReader jsonReader) and trace the existing reader-resolution order, including createFormattedObjectReader and jsonReader.getObjectReader(fieldType). Verify how user-defined readers are represented and selected. Done means a user-defined reader takes precedence over the default reader for types that already have one, without breaking formatted, map, or collection readers.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.