繁体   English   中英

将 Yaml 属性对象转换为 Java 对象

[英]Convert Yaml properties object to Java object

这是我的 Yaml 属性文件

bb:
  employees:
   -
    employee1:
      name: Syed
      locations:
        - HYD
        - MAA
   -
    employee2:
      name: Adhil
      locations:
        - BOM
        - DEL

我想在我的应用程序中将对象转换为我的 POJO。 但是我做不到,它总是返回null。

有什么我想念的吗?

@Data

@Builder
 @AllArgsConstructor
@NoArgsConstructor
@Configuration
@ConfigurationProperties(prefix = "bb")
public class EmpConfig {

    EmployeeDetails employees;
}

EmployeeDetails 类

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Configuration

public class EmployeeDetails {

    List<Map<String, List<String>>> details;
}

它以这种方式为我工作:

YAML(称为application.yaml)(在employeeIds(employee1,employee2)之前删除了破折号)

bb:
  employees:
    employee1:
      name: Syed
      locations:
        - HYD
        - MAA
    employee2:
      name: Adhil
      locations:
        - BOM
        - DEL

配置类:

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Configuration
@ConfigurationProperties(prefix = "bb")
public class EmpConfig {
    private Map<String, EmployeeDetails> employees;
}

员工详情:

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class EmployeeDetails {
    private String name;
    private List<String> locations;
}

所以基本上你的语法和数据类型都有问题,所以 Spring 无法解析配置文件。

这对我有用,而无需修改您的结构。

YAML 看起来像:

bb:
  employees:
      employee:
        - name: Syed
          locations:
            - HYD
            - MAA

        - name: Adhil
          locations:
            - BOM
            - DEL

输出是

在此处输入图片说明

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM