使用Jackson在密钥中使用句点反序列化YAML属性

时间:2018-08-28 20:13:03

标签: java jackson yaml

我正在反序列化看起来像的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?

谢谢

0 个答案:

没有答案