[英]Unrecognized field Jackson YAML Reader
Main.java
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
Model k = mapper.readValue(new File(PATH), Model.class);
Model.java
public class Model {
@JsonProperty
private Specs details;
private class Specs{
@JsonProperty
private String topic;
@JsonProperty
private String id;
@JsonProperty
private List<String> list;
}
}
yamlfile.yaml
details:
topic: "test"
id: "123"
servers: [
"test2"
]
我運行main.java並得到一個異常:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "details" (class Model), not marked as ignorable (0 known properties: ])
at [Source: src/main/config/yamlfile.yaml; line: 2, column: 3] (through reference chain: Model["details"])
我不知道我在做什么錯,我似乎無法找出問題所在。 為什么這無法識別?
默認情況下,Jackson可以訪問公共字段進行序列化和反序列化。 如果沒有可用的公共字段,則使用公共獲取者/設置者。
因此:在類級別添加getter / setter或添加@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
。 對於兩個類,都可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.