我想使用Jackson 2.7.0从POJO数组生成一个JSON模式:
JsonSchema schema = mapper.generateJsonSchema(MyClass[].class);所以我希望得到JSON模式:
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string"
}
...但是get:
{
"type": "array"
}如何获得期望的模式?
有没有更好的库可以从POJO生成模式?
提前感谢您的帮助!
发布于 2018-03-01 23:53:51
从2.2版本开始就不再推荐使用JsonSchema,
如果您正在使用gradle或maven,请使用jackson-module-jsonSchema作为依赖项
compile "com.fasterxml.jackson.module:jackson-module-jsonSchema:2.9.0然后你可以用这种方式创建你的模式:
ObjectMapper mapper = new ObjectMapper();
JsonSchemaGenerator schemaGen = new JsonSchemaGenerator(mapper);
JsonSchema schema = schemaGen.generateSchema(MyClass[].class);
String schemaText = mapper.writeValueAsString(schema);这对你来说很有用
发布于 2018-10-29 18:33:45
//Using below code you can custom json schema
public static String getJsonSchema(Class clazz) throws IOException {
Field[] fields = clazz.getDeclaredFields();
List<Map<String,String>> map=new ArrayList<Map<String,String>>();
for (Field field : fields) {
HashMap<String, String> objMap=new HashMap<String, String>();
objMap.put("name", field.getName());
objMap.put("type", field.getType().getSimpleName());
objMap.put("format", "");
map.add(objMap);
}
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(map);
return json;
}https://stackoverflow.com/questions/49051831
复制相似问题