-
Notifications
You must be signed in to change notification settings - Fork 546
fix_issus_3926 #3931
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
fix_issus_3926 #3931
Conversation
|
谢谢你的支持,我最近也在研究这个,有几个建议供你参考: ②单测可以补充一下 FieldBased 的场景: ③单测类的命名、放置位置、编写风格 可以参考下其它已合并的 PR |
|
@jujn 好的我研究一下 |
|
@jujn hi,已经完成了接口解析的补充和自测,请问可以帮忙review一下吗 |
|
MyDTO myDTO = JSON.parseObject("{"myList":[{"name":"张三"}]}", MyDTO.class, JSONReader.Feature.FieldBased); |
|
@jujn 搞定了辛苦帮忙看看 |
|
可以改成这样吗? |
|
已修改 |
|
resolveCollectionItemType 里可以复用 BeanUtils.getGenericSupertype 方法吗?(比如类似下面这样的逻辑) |
|
感谢指正,确实有很多可以复用的方法 |
|
已经做出修改 |
|
不知道为什么,图片中的评论我展示不出来,现在调整过了 |
|
等温老师有时间来审核吧,这里我感觉很容易留下逻辑漏洞 |
What this PR does / why we need it?
Fix: 修复自定义 List 子类反序列化时元素类型解析为 JSONObject 的问题 issus_3926
恳请帮忙审查并合并此 PR,希望能为项目贡献一份力量
根本原因
在 ObjectReaderCreator.createFieldReader() 方法中,当字段类型是自定义 List 子类(如 MyList.class )时:
解决方案
在 ObjectReaderCreator.java 的 List 类型解析逻辑中,新增第三步类型解析策略:
另外处理了fieldTypeResolved fieldClassResolved为空的情况
Summary of your change
core/src/main/java/com/alibaba/fastjson2/reader/ObjectReaderCreator.java,在 createFieldReader() 方法中,针对 List 类型的字段解析逻辑进行了增强
core/src/test/java/com/alibaba/fastjson2_demo/CustomListTest.java,添加了测试用例验证修复效果
Please indicate you've done the following: