Java解析yaml文件

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

1. 什么是yaml ?

参考下方链接
yaml快速入门

2. 导入maven依赖

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

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的类型为ObjectMap<String, Object> objectMap = (Map<String, Object>) yaml.load(br);// 4. 以下就是获取yaml文件中的内容, 可以通过遍历map的方式获取, 也可以按照kv的形式获取// 获取所有的keySet<String> keySet = objectMap.keySet();// 通过 key 获取valuefor (String key : keySet) {System.out.println(key + "\t : " + objectMap.get(key).toString());}// 获取单值Object name = objectMap.get("name");System.out.println(name);// 获取数组类型ArrayList<String> teamMember = (ArrayList<String>) objectMap.get("teamMember");for (String member : teamMember) {System.out.println(member);}// 获取复合对象 , 注意类型为 LinkedHashMapLinkedHashMap<String, ArrayList<String>> hobbies = (LinkedHashMap<String, ArrayList<String>>) objectMap.get("hobbies");for (Map.Entry<String, ArrayList<String>> 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]

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

Java解析yaml文件相关推荐

  1. java 解析 csv 文件

    文章分类:JavaEye 一.貌似有bug,不行用 二.或 三. 的方法 Java代码   import java.io.BufferedReader; import java.io.FileInpu ...

  2. 用正则表达式和java解析csv文件

    用正则表达式和java解析csv文件 作者:弹着钢琴设计  来源:博客园  发布时间:2009-06-15 18:31  阅读:337 次  原文链接   [收藏]   在解析csv文件之前,先来看看 ...

  3. 如何在Python中解析YAML文件

    如何在Python中解析YAML文件? #1楼 不依赖C标头的最简单,最纯净的方法是PyYaml( 文档 ): #!/usr/bin/env pythonimport yamlwith open(&q ...

  4. java解析dxf文件_浅析JVM方法解析、创建和链接

    一:前言 上周末写了一篇文章<你知道Java类是如何被加载的吗?>,分析了HotSpot是如何加载Java类的,干脆趁热打铁,本周末再来分析下Hotspot又是如何解析.创建和链接类方法的 ...

  5. java解析xml文件

    使用java解析xml文件,通过dom4j. 代码如下: package com.java.team; import java.io.File; import java.util.ArrayList; ...

  6. java解析Excel文件

    下文介绍java解析Excel文件的方案 前置准备 1.第三方jar包或者Maven配置 org.apache.poi的jar包 Maven配置如下 <groupId>org.apache ...

  7. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  8. go解析yaml文件示例

    yaml文件已经成为配置的一种主要格式,因此各种语言都提供了相应的解析类库, 本文就以go语言中常用的yaml解析库 gopkg.in/yaml为例,简单展示一下如何解析yaml文件 具体代码在这里: ...

  9. JAVA解析.xlsb文件

    Java解析.Xlsb文件 pom.xml <dependency><groupId>org.apache.poi</groupId><artifactId& ...

最新文章

  1. 获取枚举值上的Description特性说明
  2. 日事清【员工绩效】功能活动上线!
  3. 第十六届全国大学生智能汽车竞赛航天智慧物流总决赛暨第二届“航天杯”移动机器人AI创新技术挑战赛圆满举办
  4. Appium如何获取appPackage和appActivity
  5. python主要用途-Python能用来做什么?以下是Python的三大主要用途
  6. [转] c#中 多线程访问winform控件
  7. 衡量发动机性能的重要指标—升功率
  8. 知物由学 | 干货!一文了解安卓APP逆向分析与保护机制
  9. python如何读取字典的关键字_python提取字典key列表的方法
  10. 将已有项目转为se项目_如何将 Java 项目转换成 Maven 项目
  11. 这才是真正的薪资水平
  12. Eclipse安装Lombok
  13. java计算机毕业设计网上书店管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  14. Vue.js开发基础 05
  15. AXD Debugger
  16. 科技部:中国131家独角兽企业 名单文字版
  17. 30 行代码实现蚂蚁森林自动收能量(附源码)
  18. 计算机毕业设计Java-ssm办公自动化管理系统源码+系统+数据库+lw文档
  19. TinyMCE富文本编辑器在Vue中的使用
  20. oppo手机的屏幕常亮问题

热门文章

  1. macd的VB计算机程序,基于动态VWAP算法和MACD分析的程序化交易研究
  2. 20小时掌握Python语言-欧阳桫-专题视频课程
  3. 自定义android进度条渐变,自定义ProgressBar简单完成颜色渐变功能进度条
  4. 支付宝批量转账软件详解
  5. 修改ToolBar的标题、子标题字体大小和颜色,toolbar menu字体的大小和颜色以及注意事项
  6. C和C++的开发工具
  7. 聚类分析在用户行为中的实例_如何对用户进行聚类分析?
  8. steam搬砖项目,csgo游戏搬砖详细拆解分享
  9. 【自然语言处理(NLP)】基于CBOW实现Word2Vec
  10. 【知识】给字符数组赋值的方法