Storme的答案参考
org.prehaus,它是jackson的旧版本。以下内容相似,但使用的是fastxml(新版本)。
Pom:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.7.1</version></dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.1</version></dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.7.1</version></dependency><dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jsonSchema</artifactId> <version>2.1.0</version></dependency>
码:
import ...TargetClass;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.SerializationFeature;import com.fasterxml.jackson.databind.jsonschema.JsonSchema;import java.io.IOException;public final class JsonSchemaGenerator { private JsonSchemaGenerator() { }; public static void main(String[] args) throws IOException { System.out.println(JsonSchemaGenerator.getJsonSchema(TargetClass.class)); } public static String getJsonSchema(Class clazz) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true); JsonSchema schema = mapper.generateJsonSchema(clazz); return mapper.writerWithDefaultPrettyPrinter().writevalueAsString(schema); }}


