Jackson JsonSchemaGenerator - 如何将Schema作为字符串

mty*_*son 3 java json jsonschema jackson

我相信我只是在这里密集.

我想采用对象模式,并将其转换为字符串表示形式.

像这样,但这返回null:

JsonSchemaGenerator generator = new JsonSchemaGenerator(MAPPER);
JsonSchema jsonSchema = generator.generateSchema(Get.class);
System.out.println("jsonSchema: " + jsonSchema.asObjectSchema().asStringSchema());
Run Code Online (Sandbox Code Playgroud)

这是使用com.fasterxml.jackson.module.jsonSchema.JsonSchema,可在https://github.com/FasterXML/jackson-module-jsonSchema/wiki找到

Thi*_*gos 6

你可以做到这一点:

ObjectMapper mapper = new ObjectMapper();
SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();
mapper.acceptJsonFormatVisitor(mapper.constructType(YOURCLASS.class), visitor);
JsonSchema jsonSchema = visitor.finalSchema();
String schemaString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonSchema);
Run Code Online (Sandbox Code Playgroud)


mty*_*son 1

轻松完成:

m.writeValueAsString(jsonSchema);
Run Code Online (Sandbox Code Playgroud)

本质上,使用 Jackson 将模式对象编组为 JSON。