当前位置:首页 > 行业动态 > 正文

java读取yml配置文件属性

什么是YAML?

YAML(YAML Ain’t Markup Language)是一种简洁的非标记语言,用于数据序列化,它具有易读性、可扩展性和易于编写的特点,YAML文件通常以.yaml.yml为扩展名,在Java中,我们可以使用SnakeYAML库来读取和解析YAML文件。

如何安装SnakeYAML库?

1、打开命令行窗口(Windows系统下为CMD,Mac和Linux系统下为终端)。

2、输入以下命令并回车:mvn install:install-file -Dfile=snakeyaml-1.29.0.jar -DgroupId=org.yaml -DartifactId=snakeyaml -Dversion=1.29.0 -Dpackaging=jar

3、等待安装完成,SnakeYAML库就安装成功了。

java读取yml配置文件属性

如何使用SnakeYAML库读取YAML文件?

1、需要在项目中引入SnakeYAML库,在Maven项目的pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.29</version>
</dependency> 

2、创建一个Java类,用于映射YAML文件中的数据结构,假设我们有一个YAML文件如下:

name: 张三
age: 30
address:
  city: 北京
  street: 朝阳路 

我们可以创建一个名为Person的Java类,如下所示:

java读取yml配置文件属性

public class Person {
    private String name;
    private int age;
    private Address address;
    // 省略getter和setter方法
} 

3、在Java代码中,使用SnakeYAML库读取YAML文件并将其转换为Java对象,示例代码如下:

import org.yaml.snakeyaml.Yaml;
import java.io.InputStream;
import java.util.Map;
public class YamlReaderDemo {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        InputStream inputStream = YamlReaderDemo.class.getClassLoader().getResourceAsStream("person.yml");
        Map<String, Object> data = yaml.load(inputStream);
        Person person = (Person) data.get("person");
        System.out.println("姓名:" + person.getName());
        System.out.println("年龄:" + person.getAge());
        System.out.println("地址:");
        System.out.println("城市:" + person.getAddress().getCity());
        System.out.println("街道:" + person.getAddress().getStreet());
    }
} 

4、确保与代码相同的目录下存在一个名为person.yml的文件,内容与上述示例相同,运行YamlReaderDemo类的main方法,可以看到从YAML文件中读取的数据被正确输出。

常见问题与解答

1、如何处理YAML文件中的嵌套结构?

java读取yml配置文件属性

答:在Java类中,可以使用嵌套的类或对象来表示YAML文件中的嵌套结构,可以将address字段的类型设置为Address,然后在Person类中定义一个嵌套的Address类,这样,就可以根据需要处理嵌套结构了。