Я десериализирую YAML, который выглядит как
category.a.1:
property: value
category.a.2:
property: value
category.b.1:
property: value
Хотя точки в ключах не требуются, они наиболее предпочтительны (таким образом, они соответствуют идентификаторам сторонних производителей, которые они представляют).
Несмотря на то, что точка ничего не значит в синтаксисе YAML, Джексон по-прежнему интерпретирует их как переход на уровень ниже по карте, и когда я пытаюсь сопоставить его с объектом Java, Джексон интерпретирует YAML как
category:
a:
1:
property: value
Я бы хотел, чтобы Джексон полностью игнорировал периоды в Струнах и давал их мне нетронутыми.
Поиск в теме по теме оказался весьма расплывчатым, и самый близкий ответ, который я смог найти, - вместо этого говорить о том же, но для файла свойств Java: Файл десериализации, содержащий точку с Джексоном
Картограф YAML создается следующим образом
ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory());
yamlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
yamlMapper.registerModule(myMapperModule);
Тем не менее, похоже, что нет никакой дополнительной функции десериализации, которую я могу включить для игнорирования разделителя пути в этом случае. И ни выход из периода, ни завершение его в "[category.a.1]"
, похоже, ничего не делают.
Есть ли способ сделать это, возможно, даже с помощью аннотации к свойству в конструкторе @JsonCreator
, или я пытаюсь согнуть YAML так, как не должен?
Спасибо