I am using Java API like this
public void convertJsonToJavaClass(URL inputJsonUrl, File outputJavaClassDirectory, String packageName, String javaClassName) throws IOException {
com.sun.codemodel.JCodeModel jcodeModel = new com.sun.codemodel.JCodeModel();
GenerationConfig config = new DefaultGenerationConfig() {
@Override
public boolean isGenerateBuilders() {
return true;
}
@Override
public SourceType getSourceType() {
return SourceType.JSON;
}
};
SchemaMapper mapper = new SchemaMapper(new RuleFactory(config, new Jackson2Annotator(config), new SchemaStore()), new SchemaGenerator());
mapper.generate(jcodeModel, javaClassName, packageName, inputJsonUrl);
jcodeModel.build(outputJavaClassDirectory);
}
The input Json schema file has properties that look like this:
{
"type": "object",
"properties": {
"Market": {
"type": "string"
},
"Dealer": {
"type": "integer"
},
"Side": {
"type": "string",
"enum": ["Buy", "Sell", "Pay", "Receive", "Undisclosed"]
},
"Package": {
"type": "string",
"enum": ["Y", "N"]
}
},
"required": ["Market", "Side"]
}
The default output is 5 POJO classes, 1 for each Json element with a Properties.java
to collect all the POJO. Whereas I would like 1 POJO with the Json elements converted to Java primitives. What to do please? Is this Json schema layout and Java API code the best practise for jsonschema2pojo? Thanks