栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

Java解析yaml文件

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java解析yaml文件

Java解析yaml文件
  • 1. 什么是yaml ?
  • 2. 导入maven依赖
  • 3. yaml 案例文件
  • 4. 示例代码
  • 5. 解析结果

1. 什么是yaml ?

参考下方链接
yaml快速入门

2. 导入maven依赖
        
            org.yaml
            snakeyaml
            1.26
        
3. yaml 案例文件
name: steven
phone: 18********5
company: "******"
teamMember:
  - 于**
  - 徐**
  - 索**
hobbies:
      foods:
        - 黄焖鸡米饭
        - 黄焖排骨
        - 五花肉
        - 热干面
      sports:
        - 羽毛球
        - 骑车
        - 跑步
      works:
        - coding
        - repairComputer
working-skills:
  - Java
  - Hadoop
  - hive
  - spark
  - flink
  - kafka
  - HBASE
4. 示例代码
import org.yaml.snakeyaml.Yaml;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;

public class 解析yaml {
    public static void main(String[] args) throws FileNotFoundException {
        // 1. 使用流关联yml配置文件
        BufferedReader br = new BufferedReader(new FileReader(解析yaml.class.getClassLoader().getResource("testyaml.yaml").getPath()));

        // 2. 创建yaml工具类
        Yaml yaml = new Yaml();

        // 3. 使用yaml工具类加载 流
        // 返回的字符形式非常类似于JSON, 但又不是JSON, 因为返回的字符之间使用的是 = 号连接的
        // 可以直接转换为Map 进行处理, key 的类型是 字符串, value的类型为Object
        Map objectMap = (Map) yaml.load(br);

        // 4. 以下就是获取yaml文件中的内容, 可以通过遍历map的方式获取, 也可以按照kv的形式获取
        
        // 获取所有的key
        Set keySet = objectMap.keySet();
        // 通过 key 获取value
        for (String key : keySet) {
            System.out.println(key + "t : " + objectMap.get(key).toString());
        }

        // 获取单值
        Object name = objectMap.get("name");
        System.out.println(name);

        // 获取数组类型
        ArrayList teamMember = (ArrayList) objectMap.get("teamMember");
        for (String member : teamMember) {
            System.out.println(member);
        }

        // 获取复合对象 , 注意类型为 LinkedHashMap
        LinkedHashMap> hobbies = (LinkedHashMap>) objectMap.get("hobbies");
        for (Map.Entry> listEntry : hobbies.entrySet()) {
            System.out.println(listEntry.getKey() + " : " + listEntry.getValue());
        }
    }
}

5. 解析结果
name	 : steven
phone	 : 18********5
company	 : ******
teamMember	 : [于**, 徐**, 索**]
hobbies	 : {foods=[黄焖鸡米饭, 黄焖排骨, 五花肉, 热干面], sports=[羽毛球, 骑车, 跑步], works=[coding, repairComputer]}
working-skills	 : [Java, Hadoop, hive, spark, flink, kafka, HBASE]
steven
于**
徐**
索**
foods : [黄焖鸡米饭, 黄焖排骨, 五花肉, 热干面]
sports : [羽毛球, 骑车, 跑步]
works : [coding, repairComputer]

欢迎大家留言一起讨论学习!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/897279.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号