yaml解析
介绍
YMAL是一种数据格式,有点类似于j son, 可读性,简洁性更高,SpringBoot中推荐的配置文件就采用这种格式。
YAML文件格式
我们常用的数据格式:键值,列表,集合
键值
键值就是key-value格式。
# 注意冒号后面需要空格
key: value
列表
list:
- item1
- item2
- item3
集合
map:
k1: v1
k2: v2
k3: v3
Java解析YAML文件
上面介绍了yaml的文件格式,那我们如何将yaml文件解析出来,或者直接解析为对象呢,我们使用
snakeyaml
工具包。
maven依赖导入
<denpendency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.16</version>
</denpendency>
构建yaml文件
id: 10110
name: 张三
phone: 18000000
hobby:
- pingpong
- basketball
- football
balance:
wechat: 99.99
alipay: 0.99
address:
county: China
province: Guang Dong
city: Guang Zhou
构建相对应的Object对象
@Data
public class User {
private long id;
private String name;
private String phone;
private List<String> hobby;
private Map<String, BigDecimal> balance;
private Address address;
}
@Data
public class Address {
private String county;
private String province;
private String city;
}
解析
@Test
public void praseYaml() throws FileNotFoundException {
Yaml yaml = new Yaml();
Path path = Paths.get("test.yml");
User user = yaml.loadAs(new FileInputStream(path.toFile()), User.class);
System.out.println(JSON.toJSONString(user, true));
}
打印解析结果如下:
{
"address":{
"city":"Guang Zhou",
"county":"China",
"province":"Guang Dong"
},
"balance":{
"wechat":99.99,
"alipay":0.99
},
"hobby":[
"pingpong",
"basketball",
"football"
],
"id":10110,
"name":"张三",
"phone":"18000000"
}
总结
- 本文主要介绍了yaml文件的基础数据格式使用
- 如何使用Java类库
snakeyaml
解析yaml文件