【发布时间】:2018-03-26 10:12:44
【问题描述】:
我使用了一个 POJO,它工作正常,我决定使用 org.apache.commons 中的 FileUtils 在一堆 java 类中工作,以遍历所有 java 文件目录并在 generateSchema() 中使用 get class() Jackson 模块,但输出不是预期的。
不知道问题出在哪里?
输入:
File dir = new File("./src/main/java/com/hiveprod/generator/jsonshema");
String[] extensions = new String[] { "java" };
System.out.println("Getting POJOs..." );
List<File> files = (List<File>) FileUtils.listFiles(dir, extensions, true);
for (File file : files) {
String className=file.getName();
//Mapping...
ObjectMapper mapper = new ObjectMapper();
JsonSchemaGenerator generator = new JsonSchemaGenerator(mapper);
JsonSchema jsonSchema = generator.generateSchema(file.getClass());
StringWriter jsonSchemafile = new StringWriter();
mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
mapper.writeValue(jsonSchemafile, jsonSchema);
一个文件的例子
输出:
{
"type" : "string"
}
预期输出:
{
"type" : "object",
"properties" : {
"result" : {
"type" : "string"
},
"subtitle1" : {
"type" : "string"
},
"infoSup" : {
"type" : "string"
},
"subtitle" : {
"type" : "string"
},
"title" : {
"type" : "string"
},
"info" : {
"type" : "string"
}
}
}
【问题讨论】:
标签: java json jackson jsonschema