Generar esquema json desde pojo en java - tipo de fecha personalizada

Puede decirle al generador de esquemas que desea declarar algún tipo en el esquema como si fuera otro tipo. Entonces puede decir que desea declarar cada LocalDate como una cadena.

Para eso, debe crear un JsonSchemaConfigobjeto y pasarlo al JsonSchemaGeneratorconstructor.

En el classReMappingmapa puede reasignar tipos a otros tipos.

Map<Class<?>, Class<?>> classTypeReMapping = new HashMap<>();
classTypeReMapping.put(LocalDate.class, String.class);

Opcionalmente, en la typeToFormatMappingasignación, puede asignar tipos a formatanotaciones. El formato que está utilizando para LocalDate es exactamente el formato datedefinido en la especificación del esquema JSON:

Map<String, String> typeToFormatMapping = new HashMap<>();
typeToFormatMapping.put(LocalDate.class.getName(), "date");

Construyendo un JsonSchemaConfig completo:

boolean autoGenerateTitleForProperties = false;
String defaultArrayFormat = null;
boolean useOneOfForOption = true;
boolean useOneOfForNullables = false;
boolean usePropertyOrdering = false;

boolean hidePolymorphismTypeProperty = false;
boolean disableWarnings = false;
boolean useMinLengthForNotNull = false;
boolean useTypeIdForDefinitionName = false;
boolean useMultipleEditorSelectViaProperty = false;
Set<Class<?>> uniqueItemClasses = Collections.emptySet();

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);

Map<Class<?>, Class<?>> classTypeReMapping = new HashMap<>();
classTypeReMapping.put(LocalDate.class, String.class);
// #####****##### Add remapped types here 

Map<String, String> typeToFormatMapping = new HashMap<>();
typeToFormatMapping.put(LocalDate.class.getName(), "date");
// #####****##### (optional) Add format annotations for types here 

JsonSchemaConfig config = JsonSchemaConfig.create(
        autoGenerateTitleForProperties,
        Optional.ofNullable(defaultArrayFormat),
        useOneOfForOption,
        useOneOfForNullables,
        usePropertyOrdering,
        hidePolymorphismTypeProperty,
        disableWarnings,
        useMinLengthForNotNull,
        useTypeIdForDefinitionName,
        typeToFormatMapping,
        useMultipleEditorSelectViaProperty,
        uniqueItemClasses,
        classTypeReMapping,
        Collections.emptyMap()
)

Construyendo un JsonSchemaGenerator:

JsonSchemaGenerator jsonSchemaGenerator = new JsonSchemaGenerator(objectMapper, config);
Class<?> mainClassObject = ...;
JsonNode jsonSchema = jsonSchemaGenerator.generateJsonSchema(mainClassObject);
Respuesta 1

Estoy tratando de diseñar mi explorador para un sistema operativo en Java. Sería algo parecido a lo que hace "Mi PC" en Windows (obviamente con algunas características nuevas). He trabajado con Swing antes y tal vez lo haga ...

Simplemente estoy tratando de crear un complemento de cuadrícula que pueda hacer que cada celda sea editada por un usuario. Encontré Eclipse Nebula y parece bastante parecido a lo que quiero hacer, excepto que no puedo encontrar una manera de hacer ...

He creado algunas clases personalizadas de JPanel usando NetBeans GUI Builder. A continuación, los agregué a la paleta. Luego creé un JFrame personalizado y pude arrastrar mis JPanels al JFrame. Esto funcionó ...

El proyecto Maven: SpringBoot tiene una clase de inicio SpringBoot. Sitio web angular en la carpeta 'recursos / público'. La aplicación se inicia y sirve index.html desde la carpeta pública. Quiero ...