如何为这个复杂的json写一个pojo并反序列化json请求?

时间:2016-04-06 17:51:30

标签: java json serialization

我需要在java中解析这个json结构。

{
"collection": "collectionname",
"field_rules": [{
    "fieldname": "fieldname1",
    "modules":

        [{
        "module": "module1",
        "options": {
            "key1": ["val1", "val2", "val3"]
        }
    }, {
        "module": "module2"
    }, {
        "module": "module3"
    }, {
        "module": "module5"
    }]
}, {
    "fieldname": "fieldname2",
    "modules":

        [{
        "module": "module6",

        "options": {
            "keytype": [{
                "key1": "val1"
            }, {
                "key2": "val2"
            }],
            "key3": "val3"
        }
    }]
}, {
    "fieldname": "fieldname3",
    "modules":

        [{
        "module": "module7",
        "options": {
            "key1": "val1"
        }
    }, {
        "module": "module8",
        "options": {
            "key1": "val1"
        }
    }]
}, {
    "fieldname": "fieldname4",
    "modules": [{
        "module": "module9",
        "options": {
            "key1": ["val1", "val2"],
            "key2": "val1",
            "key3": "val1"
        }

    }]
}]

}

我写了一些pojo类,让我解析json直到像这样的模块(只在这里写字段......)。

Class Command { 

 String collection;
 List<FieldRules> field_rules;
 }

Class FieldRules { 
String fieldname;
List<Module> modules;
}

Class Modules {
String module;
Options options; 

} 

现在我需要一个用于选项的pojo类。如您所见,选项可以是示例中的3-4种结构中的任何一种。如何为Options类创建一个pojo?或者除了使用pojo类反序列化这样复杂的json结构之外还有其他选择吗?在此先感谢!!!

我尝试使用从基类Options扩展的4个自定义类,当我尝试像这样访问它们时:commandJson.getField_rules()。get(1).getModule()。get(0).getOptions()。 getOptionType我得到一个空值。我该如何解决这个问题?

0 个答案:

没有答案