【springboot入门之YAML使用】

YAML(YAML Ain’t Markup Language)是一种用于配置文件的格式,它支持多种数据类型,易于人类阅读和编写。以下是YAML中常见的数据类型及其使用说明:

  1. 字符串
name: John Doe

Java代码

public class YamlExample {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        String yamlContent = "name: John Doe";
        Map<String, Object> data = yaml.load(yamlContent);
        System.out.println("Name: " + data.get("name"));
    }
}

输出

Name: John Doe
  1. 列表(List)
fruits:
  - apple
  - banana
  - cherry

java 代码

public class YamlExample {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        String yamlContent = "fruits:\n  - apple\n  - banana\n  - cherry";
        Map<String, List<String>> data = yaml.load(yamlContent);
        List<String> fruits = data.get("fruits");
        System.out.println("Fruits:");
        for (String fruit : fruits) {
            System.out.println("- " + fruit);
        }
    }
}

输出

Fruits:
- apple
- banana
- cherry
  1. Map
person:
  name: John Doe
  age: 28

java 代码

public class YamlExample {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        String yamlContent = "person:\n  name: John Doe\n  age: 28";
        Map<String, Map<String, Object>> data = yaml.load(yamlContent);
        Map<String, Object> person = data.get("person");
        System.out.println("Name: " + person.get("name"));
        System.out.println("Age: " + person.get("age"));
    }
}

输出

Name: John Doe
Age: 28
  1. 复合结构
people:
  - name: John Doe
    age: 28
  - name: Jane Doe
    age: 25

java代码

public class YamlExample {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        String yamlContent = "people:\n  - name: John Doe\n    age: 28\n  - name: Jane Doe\n    age: 25";
        Map<String, List<Map<String, Object>>> data = yaml.load(yamlContent);
        List<Map<String, Object>> people = data.get("people");
        for (Map<String, Object> person : people) {
            System.out.println("Name: " + person.get("name"));
            System.out.println("Age: " + person.get("age"));
        }
    }
}

输出

Name: John Doe
Age: 28
Name: Jane Doe
Age: 25
  1. 注释
# This is a comment
name: John Doe  # Inline comment
  1. 多行字符串
block_style: |
  Line 1
  Line 2
  Line 3

flow_style: >
  Line 1
  Line 2
  Line 3

java代码

public class YamlExample {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        String yamlContent = "block_style: |\n  Line 1\n  Line 2\n  Line 3\n" +
                "flow_style: >\n  Line 1\n  Line 2\n  Line 3";
        Map<String, Object> data = yaml.load(yamlContent);
        System.out.println("Block Style:\n" + data.get("block_style"));
        System.out.println("Flow Style:\n" + data.get("flow_style"));
    }
}

输出

Block Style:
Line 1
Line 2
Line 3
Flow Style:
Line 1
Line 2
Line 3
  1. 布尔和Null的简写
is_active: true
middle_name: null

java代码

public class YamlExample {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        String yamlContent = "is_active: true\nmiddle_name: null";
        Map<String, Object> data = yaml.load(yamlContent);
        System.out.println("Is Active: " + data.get("is_active"));
        System.out.println("Middle Name: " + data.get("middle_name"));
    }
}

输出

Is Active: true
Middle Name: null
  1. 锚点和别名
defaults: &defaults
  adapter: postgres
  database: rails

development:
  database: dev_db
  <<: *defaults

java代码

public class YamlExample {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        String yamlContent = "defaults: &defaults\n  adapter: postgres\n  database: rails\n" +
                "development:\n  database: dev_db\n  <<: *defaults";
        Map<String, Object> data = yaml.load(yamlContent);
        Map<String, Object> defaults = (Map<String, Object>) data.get("defaults");
        Map<String, Object> development = (Map<String, Object>) data.get("development");
        System.out.println("Defaults Adapter: " + defaults.get("adapter"));
        System.out.println("Defaults Database: " + defaults.get("database"));
        System.out.println("Development Database: " + development.get("database"));
        System.out.println("Development Adapter: " + development.get("adapter"));
    }
}

输出

Defaults Adapter: postgres
Defaults Database: rails
Development Database: dev_db
Development Adapter: postgres
  1. 合并多个键
defaults: &defaults
  adapter: postgres
  database: rails
person:
  name: John Doe
  <<: *defaults

java代码

public class YamlExample {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        String yamlContent = "defaults: &defaults\n  adapter: postgres\n  database: rails\n" +
                "person:\n  name: John Doe\n  <<: *defaults";
        Map<String, Object> data = yaml.load(yamlContent);
        Map<String, Object> person = (Map<String, Object>) data.get("person");
        System.out.println("Name: " + person.get("name"));
        System.out.println("Adapter: " + person.get("adapter"));
        System.out.println("Database: " + person.get("database"));
    }
}

输出

Name: John Doe
Adapter: postgres
Database: rails
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值