YAML文件简介

我们可能在spring配置文件里见到过.yml格式的东东,配置文件不都是.propertie或者.xml文件吗?.yml是什么鬼,今天我带你们来一探究竟。

YAML(Yet Another Markup Language)(发音 /ˈjæməl/ )
 一种基于Unicode容易阅读,容易和脚本语言交互的,用来表达资料序列的编程语言。

适应场景

  1. 脚本语言:由于实现简单,解析成本很低,YAML 特别适合在脚本语言中使用
  2. 序列化: YAML是由宿主语言数据类型直转,的比较适合做序列化。
  3. 配置文件:写 YAML 要比写 XML 快得多(无需关注标签或引号),并且比 INI 文档功能更强。由于兼容性问题,不同语言间的数据流转建议不要用 YAML。

语言优点

  1. YAML易于人们阅读。
  2. YAML数据在编程语言之间是可移植的。
  3. YAML匹配敏捷语言的本机数据结构。
  4. YAML具有一致的模型来支持通用工具。
  5. YAML支持单程处理。
  6. YAML具有表现力和可扩展性。
  7. YAML易于实现和使用。

YAML 语法

  1. 使用空格 Space 缩进表示分层,不同层次之间的缩进可以使用不同的空格数目,但是同层元素一定左对齐,即前面空格数目相同(不能使用 Tab,各个系统 Tab对应的 Space 数目可能不同,导致层次混乱)
  2. ‘#’表示注释,只能单行注释,从#开始处到行尾
  3. 破折号后面跟一个空格(a dash and space)表示列表
  4. 用冒号和空格表示键值对 key: value
  5. 简单数据(scalars,标量数据)可以不使用引号括起来,包括字符串数据。用单引号或者双引号括起来的被当作字符串数据,在单引号或双引号中使用C风格的转义字符

Sequence of Scalars  简单数据列表

- Mark McGwire
- Sammy Sosa
- Ken Griffey

Mapping Scalars to Scalars 简单数据键值对以及注释

hr:  65    # Home runs
avg: 0.278 # Batting average
rbi: 147   # Runs Batted In

Mapping Scalars to Sequences 简单数据列表键值对

american:- Boston Red Sox- Detroit Tigers- New York Yankees
national:- New York Mets- Chicago Cubs- Atlanta Braves

Sequence of Mappings 键值对列表

-name: Mark McGwirehr:   65avg:  0.278
-name: Sammy Sosahr:   63avg:  0.288

YAML 还支持流类型,用中括号括起来表示列表,用逗号分隔元素;用大括号括起来表示键值对,用逗号分隔元素。

Sequence of Sequences 列表的列表

- [name        , hr, avg  ]
- [Mark McGwire, 65, 0.278]
- [Sammy Sosa  , 63, 0.288]

Mapping of Mappings  键值对的键值对

Mark McGwire: {hr: 65, avg: 0.278}
Sammy Sosa: {hr: 63,avg: 0.288}

yaml 官方网站:http://www.yaml.org

yaml 官方文档:http://www.yaml.org/spec/1.2/spec.html
想了解更多技术文章,请关注“java开发者联盟”

yaml文件 .yml相关推荐

  1. yaml文件 *.yml 写法简介

    YAML文件简介 我们可能在spring配置文件里见到过.yml格式的东东,配置文件不都是.propertie或者.xml文件吗?.yml是什么鬼,今天我带你们来一探究竟. YAML(Yet Anot ...

  2. YAML文件(.yml)中的键(key)通过变量引用来设置

    转自:https://www.cnblogs.com/haycheng/p/13299183.html 通过变量引用设置配置量的[值](value) 在YAML文件中,一个配置量的值可以通过引用另一个 ...

  3. 《OpenCV3编程入门》学习笔记5 Core组件进阶(六)输入输出XML和YAML文件

    第5章 Core组件进阶 5.6 输入输出XML和YAML文件 5.6.1 XML和YAML文件 XML和YAML是使用非常广泛的文件格式,可以利用XML或者YAML式的文件存储和还原各种数据结构,还 ...

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

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

  5. 利用opencv中的类FileStorage生成和读取XML和YAML文件

    有时候程序中的变量值.字符串.数组等数据也需要独立于源代码本身保存,这个时候就需要用到XML和YAML文件进行保存. OpenCV4提供了用于生成和读取XML文件和YAML文件的类FileStorag ...

  6. OpenCV中XML文件和YAML文件的读写

    OpenCV中XML文件和YAML文件的读写 代码如下: #include <opencv2/core/core.hpp> #include <iostream> #inclu ...

  7. android读取本地yaml文件_python笔记11-读取yaml配置文件(pyyaml)

    YAML简介 YAML 是一种较为人性化的数据序列化语言,可以配合目前大多数编程语言使用. YAML 的语法比较简洁直观,特点是使用空格来表达层次结构,其最大优势在于数据结构方面的表达,所以 YAML ...

  8. yamlcpp遍历_OpenCV文件输入和输出使用XML和YAML文件

    目标 您会找到以下问题的答案:如何使用YAML或XML文件打印和读取文本和OpenCV文本条目? OpenCV数据结构如何做同样的操作? 如何为您的数据结构做这个? 源代码 您可以从这里下载,也可以在 ...

  9. python生成yaml文件_Python实践34-读写yaml文件

    关于yaml YAML语言的设计目标,就是方便人类读写.如果你想要实现一些用ini不好做到的配置,可以使用yaml格式作为配置文件 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使 ...

最新文章

  1. 面试官问:对象池技术了解吗?apache common pool2呢?
  2. php 单一职责,读懂 SOLID 的「单一职责」原则
  3. burpsuite https 社区版_微软推出Visual Studio 2019 RC版 正式版预计四月到来
  4. spring中事务的设计和实现
  5. java的object_Java中的Object类详细介绍
  6. 如何求解单边z变换_的单边Z变换。.ppt
  7. tf.truncated_normal的用法
  8. python 选择多个文件夹_如何同时选择多个文件?
  9. scala seq java_Scala中的两个Seq比较
  10. 怎么删除已经安装的mysql_怎么样删除已经安装的mysql | wdlinux致力于Linux服务器架构,性能优化.免费CDN加速系统,免费智能DNS解析,负载均衡,集群分流...
  11. Thunderbolt是什么
  12. C++标准库::拾遗
  13. drool 7.x 属性 : no-loop
  14. 博士申请 | 澳门大学张一博教授课题组招收计算机视觉方向全奖博士生
  15. 让你的程序陪你的好友打会牌吧(零)
  16. wangEditor 粘贴从 word 复制的带图片内容的最佳实践
  17. Peekaboo——项目系统设计与数据库设计
  18. Android——广播
  19. cacheable更新_@Cacheable不会拦截该方法,缓存始终为空
  20. 2C领域最后一个资本宠儿,快看成“超新Z世代”娱乐平台

热门文章

  1. java实现DES加解密算法
  2. 解决c3p0连接数据库超时问题
  3. React Redux 进阶: Hooks 版本用法 Custom Context 局部 Store 实践
  4. SV TechClub 第四届 美女与野兽 2019区块链游戏黑客马拉松
  5. git push origin master报错的解决方法 常见git命令(待更新)
  6. Visual Studio 2022环境中C语言的使用——一维数组和二维数组
  7. 八维计算机学校张家口,八维学校真实校园情况?
  8. 课程设计题十:简易电子琴设计
  9. ipad iphone开发_如何在iPhone或iPad上取消应用订阅
  10. 服务器 php 版本低,php 版本过低 怎么修改?