java 中未使用 jackson 加载 Yaml 文件值

Yaml file value is not loading using jackson in java

我想加载一个 yaml 文件并将其存储在 Config.java。

这是我的 yaml 文件:(它更大。我给出了一个简化版本)

---
application:
  admin:
    jobInterValTime: 1440
    customer: lc
system:
  mongo:
    host: localhost
    port: 27017
    dbName: LC_Test
    collections:
      groupsCollection: groups
      membershipCollection: memberships
      personsCollection: persons

这里是Config.java:

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
}

但是 Config.java 中的 application & system 对象即将到来 null.No 异常正在发生。有人可以帮忙吗?

这是我写的。

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();
}

我不知道这里的根本原因,代码看起来不错。但您可以尝试的一件事是先将内容阅读为 MapJsonNode,然后查看结构。可能不匹配。

我解决了这个问题。这个错误非常愚蠢。在一个 setter 方法中,我这样写:var1 = var1 而不是 this.var1 = var1