fastjson可以解析嵌套的内部类吗?

类图:


内部类:

public class D3 {

    private D1 d1;
    private D2 d2;

    public D1 getD1() {
        return d1;
    }

    public void setD1(D1 d1) {
        this.d1 = d1;
    }

    public D2 getD2() {
        return d2;
    }

    public void setD2(D2 d2) {
        this.d2 = d2;
    }

    @Override
    public String toString() {
        return "D3{" +
                "d1=" + d1 +
                ", d2=" + d2 +
                '}';
    }

    public class D1{

        private String a1;
        private List<D4> d4 = new ArrayList<>();

        public String getA1() {
            return a1;
        }

        public void setA1(String a1) {
            this.a1 = a1;
        }

        public List<D4> getD4() {
            return d4;
        }

        public void setD4(List<D4> d4) {
            this.d4 = d4;
        }

        @Override
        public String toString() {
            return "D1{" +
                    "a1='" + a1 + '\'' +
                    ", d4=" + d4 +
                    '}';
        }

        public class D4{

            private String a4;

            public String getA4() {
                return a4;
            }

            public void setA4(String a4) {
                this.a4 = a4;
            }

            @Override
            public String toString() {
                return "D4{" +
                        "a4='" + a4 + '\'' +
                        '}';
            }
        }
    }

    public class D2{

        private String a2;

        public String getA2() {
            return a2;
        }

        public void setA2(String a2) {
            this.a2 = a2;
        }

        @Override
        public String toString() {
            return "D2{" +
                    "a2='" + a2 + '\'' +
                    '}';
        }
    }
} 


测试类

@Test
    public void testFastJson(){
        String s = "{\"d1\":{\"a1\":\"1\",\"d4\":[{\"a4\":\"4\"},{\"a4\":\"5\"}]},\"d2\":{\"a2\":\"3\"}}".trim();
        D3 d3 = JSON.parseObject(s, D3.class);
        System.out.println(d3);
    }


结果:能够正常进行解析

 总结:fastjson可以解析嵌套的内部类,这样使用嵌套内部类的方式可以使程序看起来更清晰


还有一个问题:在使用嵌套内部类的时候报错

fastJson解析报错com.alibaba.fastjson.JSONException:create instance error, class json.TestFJson$...

解决方法是:将内部类加static修饰 具体原因不明

参考:fastJson解析报错com.alibaba.fastjson.JSONException: create instance error, class json.TestFJson$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值