Java解析yaml文件
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文件相关推荐
- java 解析 csv 文件
文章分类:JavaEye 一.貌似有bug,不行用 二.或 三. 的方法 Java代码 import java.io.BufferedReader; import java.io.FileInpu ...
- 用正则表达式和java解析csv文件
用正则表达式和java解析csv文件 作者:弹着钢琴设计 来源:博客园 发布时间:2009-06-15 18:31 阅读:337 次 原文链接 [收藏] 在解析csv文件之前,先来看看 ...
- 如何在Python中解析YAML文件
如何在Python中解析YAML文件? #1楼 不依赖C标头的最简单,最纯净的方法是PyYaml( 文档 ): #!/usr/bin/env pythonimport yamlwith open(&q ...
- java解析dxf文件_浅析JVM方法解析、创建和链接
一:前言 上周末写了一篇文章<你知道Java类是如何被加载的吗?>,分析了HotSpot是如何加载Java类的,干脆趁热打铁,本周末再来分析下Hotspot又是如何解析.创建和链接类方法的 ...
- java解析xml文件
使用java解析xml文件,通过dom4j. 代码如下: package com.java.team; import java.io.File; import java.util.ArrayList; ...
- java解析Excel文件
下文介绍java解析Excel文件的方案 前置准备 1.第三方jar包或者Maven配置 org.apache.poi的jar包 Maven配置如下 <groupId>org.apache ...
- XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML
XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...
- go解析yaml文件示例
yaml文件已经成为配置的一种主要格式,因此各种语言都提供了相应的解析类库, 本文就以go语言中常用的yaml解析库 gopkg.in/yaml为例,简单展示一下如何解析yaml文件 具体代码在这里: ...
- JAVA解析.xlsb文件
Java解析.Xlsb文件 pom.xml <dependency><groupId>org.apache.poi</groupId><artifactId& ...
最新文章
- 获取枚举值上的Description特性说明
- 日事清【员工绩效】功能活动上线!
- 第十六届全国大学生智能汽车竞赛航天智慧物流总决赛暨第二届“航天杯”移动机器人AI创新技术挑战赛圆满举办
- Appium如何获取appPackage和appActivity
- python主要用途-Python能用来做什么?以下是Python的三大主要用途
- [转] c#中 多线程访问winform控件
- 衡量发动机性能的重要指标—升功率
- 知物由学 | 干货!一文了解安卓APP逆向分析与保护机制
- python如何读取字典的关键字_python提取字典key列表的方法
- 将已有项目转为se项目_如何将 Java 项目转换成 Maven 项目
- 这才是真正的薪资水平
- Eclipse安装Lombok
- java计算机毕业设计网上书店管理系统源码+系统+数据库+lw文档+mybatis+运行部署
- Vue.js开发基础 05
- AXD Debugger
- 科技部:中国131家独角兽企业 名单文字版
- 30 行代码实现蚂蚁森林自动收能量(附源码)
- 计算机毕业设计Java-ssm办公自动化管理系统源码+系统+数据库+lw文档
- TinyMCE富文本编辑器在Vue中的使用
- oppo手机的屏幕常亮问题
热门文章
- macd的VB计算机程序,基于动态VWAP算法和MACD分析的程序化交易研究
- 20小时掌握Python语言-欧阳桫-专题视频课程
- 自定义android进度条渐变,自定义ProgressBar简单完成颜色渐变功能进度条
- 支付宝批量转账软件详解
- 修改ToolBar的标题、子标题字体大小和颜色,toolbar menu字体的大小和颜色以及注意事项
- C和C++的开发工具
- 聚类分析在用户行为中的实例_如何对用户进行聚类分析?
- steam搬砖项目,csgo游戏搬砖详细拆解分享
- 【自然语言处理(NLP)】基于CBOW实现Word2Vec
- 【知识】给字符数组赋值的方法