我正在反序列化看起来像的YAML
category.a.1:
property: value
category.a.2:
property: value
category.b.1:
property: value
虽然键中的句点不是必需的,但绝对是首选(通过这种方式,它们与所代表的第三方ID相匹配)。
虽然句号在YAML语法中并不意味着任何东西,但Jackson仍将其解释为“向下”映射,当我尝试将其映射到Java对象时,Jackson将YAML解释为
category:
a:
1:
property: value
我希望杰克逊完全忽略弦乐中的句点,并把它们原封不动地交给我。
事实证明,搜索该主题非常模糊,我能找到的最接近答案是谈论相同的操作,但针对Java属性文件:Deserialize property file that contains dot with Jackson
YAML映射器如下创建
ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory());
yamlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
yamlMapper.registerModule(myMapperModule);
在这种情况下,似乎没有其他反序列化功能可以忽略路径分隔符。而且,逃避句号或将其包装在"[category.a.1]"
中似乎都无济于事。
有没有办法做到这一点,甚至可以通过@JsonCreator
构造函数中的属性注释,或者我是否试图以不应该的方式弯曲YAML?
谢谢