[英]Generate a JSON schema from POJO array using Jackson
我想使用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"
}
...
但是得到:
{
"type": "array"
}
如何獲得預期的架構?
是否存在任何更好的庫可以從POJO生成模式?
在此先感謝您的幫助!
從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);
這對你有用
//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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.