以下是json对象的数组
[
{
"name": " hh",
"place": "usa",
"isPres": false,
"id": {
"lId": {
"id1": "40",
"level1": "tte"
},
"space": "ua"
},
"isempty": null,
"isspace": true
},
{
"name": " GE",
"place": "guinea",
"isPres": true,
"id": {
"lId": {
"id1": "30",
"level1": "Le"
},
"space": "ma"
},
"isempty": null,
"isspace": false
}
]
我尝试了下面的代码将JSON数组转换为POJO
公共类JsonToPojo {
public static void main(String[] args) {
String packageName="com.vogella.maven.quickstart";
File inputJson= new File("C:/projects/quickstart/input.json");
File outputPojoDirectory=new File("."+File.separator+"convertedPojo");
outputPojoDirectory.mkdirs();
try {
new JsonToPojo().convert2JSON(inputJson.toURI().toURL(), outputPojoDirectory, packageName, inputJson.getName().replace(".json", ""));
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Encountered issue while converting to pojo: "+e.getMessage());
e.printStackTrace();
}
}
public void convert2JSON(URL inputJson, File outputPojoDirectory, String packageName, String className) throws IOException{
JCodeModel codeModel = new JCodeModel();
URL source = inputJson;
GenerationConfig config = new DefaultGenerationConfig() {
@Override
public boolean isGenerateBuilders() { // set config option by overriding method
return true;
}
public SourceType getSourceType(){
return SourceType.JSON;
}
};
SchemaMapper mapper = new SchemaMapper(new RuleFactory(config, new Jackson2Annotator(config), new SchemaStore()), new SchemaGenerator());
mapper.generate(codeModel, className, packageName, source);
codeModel.build(outputPojoDirectory);
}
}
但是问题是我只为数组的一个对象而不是两个对象获取java pojo类 我想要两个数组的结果
答案 0 :(得分:0)
仅是建议::如果您使用的是日食,则可以使用https://marketplace.eclipse.org/content/jsonizer 插件可通过Sample JSON自动创建您的pojo
然后在您的Java代码中,您可以使用Jackson映射器
ObjectMapper mapper = new ObjectMapper();
String jsonInString = "{'name' : 'mkyong'}";
//JSON from String to Object
User user = mapper.readValue(jsonInString, User.class);