簡體   English   中英

使用Jackson從POJO數組生成JSON模式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM