在我们的应用程序中,我们尝试使用Jackson读取平面属性文件,以使属性与我们的POJO相匹配。属性文件包含一个列表,但它似乎被反序列化为单个String。
这是我得到的错误:" 无法从VALUE_STRING令牌中反序列化java.util.ArrayList
的实例"
这是输入文件的样子
test=Just a test
status=A, B, C
也试过
status=[A, B, C]
status=["A", "B", "C"]
这是我们的POJO
@JsonIgnoreProperties(ignoreUnknown = true)
public class BasicPOJO {
@JsonProperty("status")
List<String> status;
@JsonProperty("test")
String test;
//Getter and setter ..
}
这就是我们映射它的方式
public void test1() {
// Read configuration file from classpath
InputStream in = WMSApplicationProperties.class.getClassLoader()
.getResourceAsStream("application.properties");
LOGGER.debug("Reading with JSON layout");
JavaPropsMapper mapper = new JavaPropsMapper();
try {
JavaPropsSchema schema = JavaPropsSchema.emptySchema()
.withoutPathSeparator();
BasicPOJO myProperties = mapper.readerFor(BasicPOJO.class)
.with(schema)
.readValue(in);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
知道列表被视为String的原因 任何帮助将不胜感激
答案 0 :(得分:0)
看起来在读取属性文件(不是JSON格式)时指定列表的唯一方法是指定如下属性:
status.1=A
status.2=B
status.3=C
不幸的是格式:status = A,B,C是不可能的