Я использую ComparableQuantity
из Ссылочная реализация JSR 385 - это не тот случай, просто хочу упомянуть, что подтип является общим, и я не могу его изменить.
Дело в том, что я генерирую схему Json с Jackson JsonSchemaModule .
В настоящее время, что я получаю от этой схемы, конечно, что-то вроде ниже:
{
"weight": {
"type": "object",
"id": "Mass>",
"required": true,
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "object",
"id": "Mass>",
"properties": {
"name": {
"type": "string"
},
...
}
}
}
}
}
Ofc, это не дает мне много - это слишком выразительно.
У меня уже есть синтаксический анализатор, который может создавать мои значения из строки (с проверкой) и сериализовать его также в строку (10 м будет в json просто "10 м"), и я хотел бы иметь ту же схему, например, с шаблоном :
{
"weight": {
"type": "string",
"pattern": "[\\d,.]+\\s*(kg|t)",
"required": true
}
}
Я знаю, что Jdk8JacksonModule
может сделать что-то похожее с Optional
, но когда я увидел Jdk8OptionalBeanPropertyWriter
, я прошел - даже не уверен, что это правильное место для поиска.
Кроме того, я думаю, что можно использовать ObjectMapper$acceptJsonFormatVisitor
, может быть, что-то с SchemaFactoryWrapper#expectObjectFormat
- не уверен.
Что я заметил, так это то, что когда я добавляю ComparableQuantity
модуль сериализации в сериализатор схемы (который на самом деле является сериализацией классов из схемы), он возвращает
{
"weight": {
"type": "any",
"required": true
}
}
так может это какой-то путь ...
Любой пример был бы хорош:).