在我们的应用程序中,我们尝试使用Jackson读取平面属性文件,以使属性与我们的POJO相匹配 一切正常,但当属性名称包含一些点时,wholo POJO设置为null
以下是属性文件的示例
textViews
这是我的POJO
p.test=Just a test
以下是我如何映射
public class BasicPOJO {
@JsonProperty("p.test")
private String test;
public String getTest() {
return test;
}
public void setTest(String test) {
this.test = test;
}
}
任何帮助将不胜感激
答案 0 :(得分:2)
Dot in属性名称用于表示嵌套对象。 这在这里描述 https://github.com/FasterXML/jackson-dataformats-text/blob/master/properties/README.md#basics-of-conversion
中所述的由于默认的java.util.Properties可以读取“flat”键/值条目,这里有什么大不了的?
大多数属性文件实际上使用命名约定来使用隐含结构;最常见的是使用句点('。')作为逻辑路径分隔符。
JavaPropsSchema.withoutPathSeparator()
停用它
JavaPropsSchema schema = JavaPropsSchema.emptySchema()
.withoutPathSeparator();
BasicPOJO myProperties = mapper.readerFor(BasicPOJO.class)
.with(schema)
.readValue(source);