将JSON数组转换为POJO?(在单个数组上编码wrkng)

时间:2018-10-01 11:43:07

标签: java json

以下是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类 我想要两个数组的结果

1 个答案:

答案 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);