YAM yml 配置文件介绍

拓展阅读

toml-01-toml 配置文件介绍

YAML-01-yml 配置文件介绍

YAML-02-yml 配置文件 java 整合使用 yamlbeans + snakeyaml + jackson-dataformat-yaml

YAML

YAML 是一种面向所有编程语言的人类友好的数据序列化标准。

zh_cn

特性

  • 大小写敏感

  • 使用缩进表示层级关系

  • 缩进时不允许使用Tab键,只允许使用空格。

  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

  • # 表示注释,从这个字符一直到行尾,都会被解析器忽略

Test

对象

  • 使用 : 分隔,右侧必须有空格。
yaml 复制代码
name: ryo

在 JavaScript 中:

js 复制代码
{ name: 'ryo' }
  • 或者像这样
yaml 复制代码
person: {name: ryo, age: 21}

在 JavaScript 中:

js 复制代码
{ person: { name: 'ryo', age: 21 } }

数组

- 开始,例如:

yaml 复制代码
- apple
- box
- cat
- dog

在 JavaScript 中:

js 复制代码
[ 'apple', 'box', 'cat', 'dog' ]
  • 数组的子元素可以这样表示
yaml 复制代码
-
  - apple
  - box
  - cat

在 JavaScript 中:

js 复制代码
[ [ 'apple', 'box', 'cat' ] ]
  • 内联数组
yaml 复制代码
array: [apple, box]

在 JavaScript 中:

js 复制代码
{ array: [ 'apple', 'box' ] }

多种类型的数组和对象:

yaml 复制代码
names:
 - Ryo
 - Kyo
 - May
animations:
 - Key: Kanon
 - Key: ReWrite
 - Key: CLANNAD

在 JavaScript 中:

js 复制代码
{ names: [ 'Ryo', 'Kyo', 'May' ],
  animations: [ { Key: 'Kanon' }, { Key: 'ReWrite' }, { Key: 'CLANNAD' } ] }

基本类型

  • 数字
yaml 复制代码
age: 12

在 JavaScript 中:

js 复制代码
{ age: 12 }
  • 布尔值

使用 truefalse

yaml 复制代码
isTrue: false

在 JavaScript 中:

js 复制代码
{ isTrue: false }
  • 空值

使用 ~ 表示 null

yaml 复制代码
memory: ~

在 JavaScript 中:

js 复制代码
{ memory: null }
  • 时间

时间使用 ISO8601 类型:

yaml 复制代码
time: 2016-10-26t21:59:43.10-05:00

在 JavaScript 中:

js 复制代码
{ time: Thu Oct 27 2016 10:59:43 GMT+0800 (CST) }
  • 日期

日期使用多种 ISO8601 年、月、日表示

yaml 复制代码
date: 1970-01-01

在 JavaScript 中:

js 复制代码
{ date: Thu Jan 01 1970 08:00:00 GMT+0800 (CST) }
  • YAML 可以使用 !! 强制类型
yaml 复制代码
name: !!str ryo
age: !!int '56'

在 JavaScript 中:

js 复制代码
{ name: 'ryo', age: 56 }

字符串

字符串默认不需要使用 ````````

yaml 复制代码
str: this is a string demo

在 JavaScript 中:

js 复制代码
{ str: 'this is a string demo' }

如果字符串中有空格或特殊字符,使用 ''""

yaml 复制代码
name: "hou: ryo"

在 JavaScript 中:

js 复制代码
{ name: 'hou: ryo' }

''"" 的区别是:

  • '' 中的特殊字符会被转义,而 "" 中不会
yaml 复制代码
double quote: "long \n long story"
single quote: 'long \n long story'

在 JavaScript 中:

js 复制代码
{ 'double quote': 'long \n long story',
  'single quote': 'long \\n long story' }

单引号中如果还有单引号,必须连续使用两个单引号转义。

yaml 复制代码
name: 'mary''s song'

在 JavaScript 中:

js 复制代码
{ name: 'mary\'s song' }

字符串可以写成多行,从第二行开始,必须有一个空格缩进。换行符会被转为空格。

yaml 复制代码
long string
 a
 ha
 ha

在 JavaScript 中:

arduino 复制代码
'long string a ha ha'

多行字符串可以使用 | 保留换行符,也可以使用 > 折叠换行。

yaml 复制代码
this: |
 angle
 beats
that: >
 little
 busters

在 JavaScript 中:

js 复制代码
{ this: 'angle\nbeats\n', that: 'little busters\n' }
  • + 表示保留文字块末尾的换行,- 表示删除字符串末尾的换行。
yaml 复制代码
one: |
 Spring

two: |+
 Summer


three: |-
 Autumn

在 JavaScript 中:

js 复制代码
{ one: 'Spring\n', two: 'Summer\n\n\n', three: 'Autumn' }

字符串可以插入 HTML

yaml 复制代码
string with html: |

 <p class="red">
     red
 </p>

在 JavaScript 中:

js 复制代码
{ 'string with html': '\n<p class="red">\n    red\n</p>\n' }

引用

你可以像这样使用:

yaml 复制代码
Author: &author
  name: ryo
  age: 11

Blog:
  info: learn note
  <<: *author

Artile:
  info: sth just like
  <<: *author

在 JavaScript 中:

js 复制代码
{ Author: { name: 'ryo', age: 11 },
  Blog: { info: 'learn note', name: 'ryo', age: 11 },
  Artile: { info: 'sth just like', name: 'ryo', age: 11 } }
相关推荐
q_191328469512 小时前
基于Springboot2+Vue2的旅游景点购票系统
java·vue.js·spring boot·后端·mysql·毕业设计·计算机毕业设计
XL's妃妃12 小时前
Java 基准测试工具 JMH 详细介绍
java·开发语言·测试工具
Z3r4y12 小时前
【代码审计】RuoYi-4.7.1&4.8.1 Thymeleaf模板注入分析
java·web安全·ruoyi·代码审计·thymeleaf
元直数字电路验证12 小时前
Jakarta EE (原 Java EE) 技术栈概览
java·java-ee
多则惑少则明13 小时前
【算法题4】找出字符串中的最长回文子串(Java版)
java·开发语言·数据结构·算法
不会编程的小寒13 小时前
C and C++
java·c语言·c++
一 乐13 小时前
鲜花销售|基于springboot+vue的鲜花销售系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
帧栈13 小时前
开发避坑指南(73):itext7 pdf表单字体加粗解决方案
java·pdf
就叫飞六吧13 小时前
找不到或无法加载主类 @C:\***\Local\Temp\idea_arg_file...
java·ide·intellij-idea
4***997413 小时前
后端在微服务中的Spring Cloud Gateway
java·微服务·架构