无法为以下JSON创建DTO类

时间:2017-02-14 20:07:10

标签: java arrays json arraylist jackson

我正在尝试用Java创建一个类似于此的json的Dto类。

    {
    "abcList":[
        {
            "keyA":"valA",
            "lstB":[{
                "keyC":"valC"
            },{
                "keyC":"valC1"
            }]
        },{
            "keyA":"valA",
            "lstB":{
                "keyC":"valC2"
            }
        }
    ]
}

Json甚至有效吗?在列表abcList中,第一个对象具有列表“lstB”,而在第二个对象中,字段“lstB”不是列表。

如果json有效,我将如何创建相应的Java类? 这不起作用。

class TopObject{
        List<ABC> abcList;


    }
    class ABC{
        public String keyA;
        public List<B> lstB;
    }
    class B{
        public String keyC;
    }

我的意思是我可以用gson成功解析它,用下面的代码遍历json的每个元素,

if(lstB.isJsonArray()){
                System.out.println("lstb is array");
                List<B> arLstB = parseBArray(lstB);
                abc.setLstB(arLstB);
            }else{
                System.out.println("lstb is not array");
                B b = parseB(lstB);
                abc.addB(b);
            }

但是原始的json非常大,我最终会编写迭代逻辑几天。我想要一个解决方案,我可以正确地对其进行注释,并像这样一次完成映射。

gson.fromJson(jsonInString, TopObject.class);

0 个答案:

没有答案