fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

[BUG] 子类对象无法反序列化

Open leshalv opened this issue 2 years ago • 12 comments

leshalv avatar Jul 16 '22 13:07 leshalv

能提供重现问题的testcase么?

wenshao avatar Jul 17 '22 09:07 wenshao

package com.example.fastjson2;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONWriter;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
public class Test {

    private Config config;

    @Data
    public static class Config{

    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class CatConfig extends Config{
        private String height;
        private String width;
    }

    public static void main(String[] args) {
        CatConfig catConfig = new CatConfig();
        catConfig.setHeight("200");
        catConfig.setWidth("100");
        Test test = new Test();
        test.setConfig(catConfig);
        String json = JSON.toJSONString(test, JSONWriter.Feature.WriteClassName);
        System.out.println(json);
        //JSON结果 {"@type":"com.example.fastjson2.Test","config":{"@type":"com.example.fastjson2.Test$CatConfig","height":"200","width":"100"}}
        Test t = (Test) JSON.parseObject(json, Test.class);
        System.out.println(t.getConfig());
        //对象结果:Test.Config() 
    }
}

fastjson1 版本是可以的,fastjson2 不可以,升级失败!

leshalv avatar Jul 18 '22 10:07 leshalv

+1

wuyuweixin avatar Jul 20 '22 04:07 wuyuweixin

+1

wuyuweixin avatar Jul 20 '22 04:07 wuyuweixin

这个BUG大概什么版本可以修复? @wenshao

leshalv avatar Aug 08 '22 02:08 leshalv

这个BUG大概什么版本可以修复? @wenshao

问题无法重现哦,你用2.0.11版本再试试看?

wenshao avatar Aug 09 '22 12:08 wenshao

这个BUG大概什么版本可以修复? @wenshao

问题无法重现哦,你用2.0.11版本再试试看?

升级版本,并不可以。

image

leshalv avatar Aug 09 '22 12:08 leshalv

这个bug还有希望吗?

leshalv avatar Sep 09 '22 05:09 leshalv

这个不应该复现不了呀,粘贴下来直接运行就是异常的情况

dujie-js avatar Oct 31 '22 09:10 dujie-js

@wenshao 在艾特一下温老板。

leshalv avatar Oct 31 '22 09:10 leshalv

@wenshao 在艾特一下温老板。

追加一张楼主提供case的运行截图,用的2.0.15版本 image

dujie-js avatar Oct 31 '22 09:10 dujie-js

@wenshao 在艾特一下温老板

leshalv avatar Nov 30 '23 10:11 leshalv

@leshalv 问题没重现,你能用最新版本2.0.47再验证下么?

wenshao avatar Mar 17 '24 05:03 wenshao

@leshalv 问题没重现,你能用最新版本2.0.47再验证下么?

还是不可以,我用了2.0.47

leshalv avatar Mar 24 '24 13:03 leshalv

要手动加上 SupportAutoType

Bean t = (Bean) JSON.parseObject(json, Bean.class, JSONReader.Feature.SupportAutoType);

看这个文档 https://github.com/alibaba/fastjson2/wiki/fastjson2_autotype_cn

wenshao avatar Mar 24 '24 16:03 wenshao