Jackson json schema是一種用于從Java對象生成JSON Schema的庫。JSON Schema是一種用于描述JSON數據結構的標準化語言。它提供了一種方法來定義JSON數據的類型、格式、屬性、參考等信息,并可以用于數據驗證、文檔生成等目的。
ObjectMapper mapper = new ObjectMapper(); JsonSchemaGenerator schemaGen = new JsonSchemaGenerator(mapper); JsonSchema schema = schemaGen.generateSchema(MyClass.class); StringWriter writer = new StringWriter(); mapper.writeValue(writer, schema); String schemaStr = writer.toString();
使用Jackson json schema,可以輕松地從一個Java類生成JSON Schema。首先創建一個ObjectMapper對象和一個JsonSchemaGenerator對象。然后,調用generateSchema()方法,傳入需要生成Schema的Java類的類型。最后,調用ObjectMapper的writeValue()方法將生成的Schema寫入一個字符串中。
{ "type" : "object", "properties" : { "id" : { "type" : "integer" }, "name" : { "type" : "string" }, "age" : { "type" : "integer" }, "email" : { "type" : "string", "format" : "email" } }, "required" : [ "id", "name", "email" ] }
生成的JSON Schema包含一個對象類型,其中包含一個properties屬性,描述了該對象的屬性。每個屬性都包含一個類型和其他可能的屬性,例如格式、枚舉值、最小值/最大值等。此外,required屬性指定必需的屬性。