[英]Error when parsing Yaml file - Cannot create property for JavaBean
Yaml
文件包含:
test:
subHeading: "1234"
Model.java
class Model{
@JsonProperty("test")
private SubHeading subHead;
private class SubHeading{
@JsonProperty("subHeading")
private String text;
}
我嘗試將Yaml
內容解析如下:
Yaml yaml = new Yaml(new Constructor(Model.class));
System.out.println(yaml.load(new FileReader(PATH)).toString());
我立即得到一個例外:
Cannot create property=test for JavaBean=Model@13a5fe33
in 'reader', line 1, column 1:
test:
知道我做錯了什么,可以在這里更改什么嗎?
所有拳頭都使用Jackson
注釋,但SnakeYaml
庫用於讀取yaml
文件。 您必須通過以下方式簡化解決方案:
Jackson
Jackson
注釋。 模型
在新文件中將每個類創建為public class
。
public class Model {
private SubHeading test;
public SubHeading getTest() {
return test;
}
public void setTest(SubHeading test) {
this.test = test;
}
@Override
public String toString() {
return "Model{" +
"test=" + test +
'}';
}
}
和
public class SubHeading {
private String subHeading;
public String getSubHeading() {
return subHeading;
}
public void setSubHeading(String subHeading) {
this.subHeading = subHeading;
}
@Override
public String toString() {
return "SubHeading{" +
"subHeading='" + subHeading + '\'' +
'}';
}
}
用法示例:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
public class YamlTest {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
mapper.enable(SerializationFeature.INDENT_OUTPUT);
String text = "test:\n" +
" subHeading: \"1234\"";
Model model = mapper.readValue(text, Model.class);
System.out.println(model);
}
}
以上印刷品:
Model{test=SubHeading{subHeading='1234'}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.