我正在使用最新的杰克逊库,并尝试为DTO生成json,但是在json响应中它不会生成@ Max,@ Min和@Required字段。下面是生成架构的代码。
public class BaseDTOSchemagenerator {
public static String generateSchema(final Object dto) {
String dtoJson = null;
final ObjectMapper om = new ObjectMapper();
final JsonSchemaEnhancer jsonSchemaEnhancer = new JsonSchemaEnhancer();
JsonSchemaGenerator schemaGen = new JsonSchemaGenerator(om);
com.fasterxml.jackson.module.jsonSchema.JsonSchema jsonSchema;
try {
jsonSchema = schemaGen.generateSchema(dto.getClass());
String jsonSchemaAsString = om.writeValueAsString(jsonSchema);
JsonNode actualObj = om.readTree(jsonSchemaAsString);
final JsonSchema schema = new JsonSchema((ObjectNode) actualObj);
final String dtoName = dto.getClass().getCanonicalName();
// BaseOutput.printTestOutput(" Dto for resource:\t" + dtoName);
// BaseTestUtils.printJson(schema);
dtoJson = BaseTestUtils.turnObjectToJson(schema);
} catch (Exception e) {
return null;
}
return dtoJson;
}
有没有一种方法可以生成这些字段?