在java中未使用jackson加载Yaml文件值
我想加载一个yaml文件并将其存储在Config.java中 这是我的yaml文件:(它大得多。我给出了一个简化版本) 下面是Config.java:在java中未使用jackson加载Yaml文件值,java,jackson,yaml,pojo,snakeyaml,Java,Jackson,Yaml,Pojo,Snakeyaml,我想加载一个yaml文件并将其存储在Config.java中 这是我的yaml文件:(它大得多。我给出了一个简化版本) 下面是Config.java: public class Config { private Application application; private System system; //Getter setter } Application.java public class Application { private Admin admin;
public class Config {
private Application application;
private System system;
//Getter setter
}
Application.java
public class Application {
private Admin admin;
//Getter Setter
}
Admin.java
public class Admin {
private String jobInterValTime;
private String customer;
//Getter Setter
}
System.java
public class System {
private Mongo mongo;
//Getter Setter
}
Mongo.java
public class Mongo {
private String host;
private String port;
private String dbName;
private Map<String, String> collections;
//Getter Setter
}
我不知道根本原因,代码看起来不错。但您可以尝试的一件事是,首先将内容读取为
Map
或JsonNode
,然后查看结构的外观。很可能是不匹配。我解决了这个问题。这个错误很愚蠢。在一个setter方法中,我这样编写:var1=var1
而不是this.var1=var1
public class Mongo {
private String host;
private String port;
private String dbName;
private Map<String, String> collections;
//Getter Setter
}
Config config = null;
ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
try{
config = objectMapper.readValue(new File("src/test/java/resources/test1.yaml"), Config.class);
//System.out.println(application.getAdmin().getCustomer());
// System.out.println(unidataConfig.getApplication().getAdmin().getCustomer());
} catch(Exception e) {
e.printStackTrace();
}