关键词:
- 概述
- 简单介绍 YAML 语言
- 背景
- 很多地方, 都在使用 YAML
- k8s
- spring
- 其他
- 很多地方, 都在使用 YAML
- 准备
- 验证工具
- YAML、YML在线格式化校验工具
- 一个 YAML 转换 JSON 的工具
- 通常来说, YAML 是可以转化为 JSON 的
- 有一个能告诉你对错的验证工具, 对学习很有帮助
- 这里如果使用 广告屏蔽插件的化, 背景会变得不太好看
- 处理办法, 是把 body 元素里的 style 属性去掉即可
- 一个 YAML 转换 JSON 的工具
- YAML、YML在线格式化校验工具
- JSON 的基础
- 起码知道 map, list 的表示
- 验证工具
1. YAML
- 概述
- 简述 YAML 相关
- 什么是 YAML
- YAML ain‘t markup language
- YAML 不是标记语言
- 这个玩法, 和 gnu 有点类似...
- YAML ain‘t markup language
- 目的
- 一门 可读性好 的语言
- 一门可以作为 数据序列化标准 的语言
- 一门 跨平台 的语言
- 和 JSON 的关系
- JSON 更加注重 跨平台, YAML 更重视可读
- YAML 可以视为 JSON 的超集
- JSON 的格式, 在 YAML 中合法
- 后缀名到底是 .YAML 还是 .yml
- 都行
- 推荐使用 .YAML
2. 语法
- 概述
- 简单介绍 YAML 语法
1. 普通文本
- 概述
- 尝试输入普通文本
例子
# 输入 1 2 3 4 # 转换 '1 2 3 4'
- 我的想法
- 虽然转换成功, 但是不建议使用
- 为啥非要用 YAML 来存放普通文本呢
- 虽然转换成功, 但是不建议使用
2. 注释
- 概述
- YAML 的注释
- 注释格式
- 开始
- 以 # 开头
- 位置
- 行首
- 整行都被视为注释
- 行中
- 符号 # 右侧的字符, 被视为注释
- 行首
- 格式
- 符号 # 和注释内容之间, 需要 空格 隔开
- 开始
- 约定
- 我在后面整理中, 不会在 YAML 里添加任何注释
- 下文中的 # 只是用来分隔的 解释说明文字
3. 简单 map
- 概述
- 简单 map
例子1: kv 分隔符
示例
# 输入 1:1 # 输出 61
- 结果
- 卧槽怎么是这个东西?
- 原因
- : 格式有问题
可用的格式, 有这两种
# 官网推荐这一种, : 紧跟key, 但是在 value 前面, 有一个空格 1: 1 2 : 2
- 后面一定注意, YAML 其实 很吃 格式
- 格式很重要
修正
# 输入 1: 1 # 输出, 这就对了嘛 ‘1‘: 1
例子2: 简单的 map
示例
# 输入 1: 10 abandon: 狂热 # 输出 '1': 10, abandon: '狂热'
- 结果
- 数字 和 字母都能作为 key
- 而且比起 JSON, YAML 的格式好像更为简单
- 起码 ‘‘ 的使用, 没有那么复杂
- 而且比起 JSON, YAML 的格式好像更为简单
- 数字 和 字母都能作为 key
其他注意的问题
- 概述
- 一些其他的注意事项
- 本来想 举例子 来说, 但还是太懒了
- 字符集
- YAML 支持 unicode 的所有可见字符集
- 特殊字符
- 如果需要 #, :, 则可以用 ‘‘ 或者 "" 引用, 保证使用正常
- 那个转化器, 无法识别 "", 这个暂时没法验证
- 如果需要 #, :, 则可以用 ‘‘ 或者 "" 引用, 保证使用正常
- key 不能重复
- 重复的 key, 会导致 解析失败
- key 不能为空
- 否则会导致 解析失败
- 单纯的 空格 和 tab 也不行
- 空字符串, 倒是没问题
- 否则会导致 解析失败
- value 可以为空
- 转换出来的 JSON, 会识别为 null
- 如果是文字 null, 则加上 ‘‘
- 数字值域
- 使用 11111111111111111111 做 键 时
- 转化后的 键 为 11111111111111110000
- 不知道是因为解析器使用 js 的原因, 还是其他原因
- 在使用数字的时候, 要有意识的去注意 值域
- 使用 11111111111111111111 做 键 时
- bool
- YAML 支持 bool 类型
- true, True
- false, False
- YAML 支持 bool 类型
4. 简单 list
- 概述
- 简单 list
例子1: 简单 list
示例
# 输入 - - ' ' - ' ' - 1 - abandon # 输出 [ null, ' ', ' ', 1, 'abandon' ]
- 结果
- 值可以为空
- 空格 和 tab 必须用 ‘‘ 或者 ""
- 否则视为 null
- 和 值 之间, 必须要有 空格
- 友情提示: 注意对齐, 后面的缩进, 会有大麻烦
5. 嵌套
- 概述
- 尝试一些相对复杂的嵌套
例子1: map 嵌套
示例
# 输入 key1: key11: value11 key12: value12 key2: key11: value11 key12: value12 # 输出 key1: key11: 'value11', key12: 'value12' , key2: key21: 'value21', key22: 'value22'
- 结果
- map 可以作为 value
- 注意
- 缩进
- YAML 中, 层次是靠 缩进 体现的
- 缩进使用的, 是 两个空格
- 一定不能用 tab 去缩进
- 缩进不正确, 会导致报错
- 当然, 可以多层嵌套
- 但具体能嵌套多少层, 我也是不清楚
- 缩进
例子2: list 嵌套
示例
# 输入 - super1 - - sub1 - sub2 - super3 # 输出 [ 'super1', [ 'sub1', 'sub2' ], 'super3' ]
- 结果
- list 可以作为 list 元素存在
- 那个空行 - 需要注意
- list 可以作为 list 元素存在
- 注意
- 还是缩进
- 层数
- 可以多层嵌套
- 但是能套多少层, 我还是不清楚
例子3: list 做 map 的 key
示例
# 输入 ? - var1 - var2 : key # 输出 'var1,var2': 'key'
- 结果
- list 作为 map 的 key, 成功转化
- 注意
- 注意格式
- ?
- :
- map 不能作为 map 的 key
- 注意格式
例子4: list 作为 map 的 value
示例
# 输入 key: - value1 - value2 # 输出 key: [ 'value1', 'value2' ]
- 结果
- 成功
例子5: map 作为 list 的元素
示例
# 输入 - key10: value10 key11: value11 - key20: value20 key21: value21 # 输出 [ key10: 'value10', key11: 'value11' , key20: 'value20', key21: 'value21' ]
- 结果
- 成功嵌套
6. 其他
- 感觉了解了这些, 基本就够用了吧
- 感觉日常使用, 基本是 够了
- 当然有一些疑问
- 层数上限
- 容量上限
- int 和 float 的上限
- 特殊转义
- " 和 ‘ 的区别
这些问题, 如果在使用中遇到, 再去处理吧
- 感觉 YAML 其实是一种 写起来更简单的 JSON
- 如果有想法的话, 其实是可以写一个东西, 来将 YAML 转化为 JSON 的
ps
springboot入门springboot的配置(代码片段)
...#xff0c;boot3里面实现用的更多的是流(Stream),其他没怎么变)。但是如果想使用自己的配置替换默认配置或添加其他配置的话,可以使用application.properties或者application.yml(application.yaml)进行配置。遵循框架的规... 查看详情
yaml配置注入(代码片段)
...:2.yaml文件内容:3.出现提示:4.测试加载指定配置文件读取其他文件(yaml)1.新建配置文件2.加载配置文件(student类)读取其他文件(properties)1.新建配置文件2.加载配置文件(student类)读取其他文 查看详情
springboot2从入门到入坟|配置文件篇:yaml语法详解(代码片段)
...测试SpringBoot在生产环境下的指标监控功能SpringBoot的一些其他原理解析这里,我们不妨先来说一下配置文件,因为后面的几点都是比较大块的内容,配置文件了解清楚之后,我们再来学习下面的内容。文件类型properties我们之前在... 查看详情
最全!即学即会serverlessdevs基础入门(下)(代码片段)
在上篇《最全!即学即会ServerlessDevs基础入门》中,我们阐述了工具链的重要性,并对安装方式&密钥配置进行了讲解。但是在ServerlessDevs的规定中,一个Yaml可以被认为是一个Serverless应用,因此本文将继续带... 查看详情
01-yaml基本使用(代码片段)
...ff08;YAML不是一种标记语言)的递归缩写。YAML的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种... 查看详情
ansible的高级用法playbook(代码片段)
Ansible的高级用法playbookAnsible入门playbook工作过程YAML特性 YAML的可读性好 YAML和脚本语言的交互性好 YAML使用实现语言的数据类型 YAML有一个一致的信息模型 YAML易于实现 YAML可以基... 查看详情
ansible自动化运维之yaml介绍(代码片段)
YAML是一种用来表达资料序列的格式,由于参考了其他多种语言,所以具有很高的可读性。YAML是YAMLAin‘tMarkupLanguage的缩写。特性如下:1.具有很好的可读性,易于实现;2.表达能力强,扩展性号;3.和脚本语言的交互性好;4.有一... 查看详情
ansible自动化运维之yaml基础元素(代码片段)
...信息模型;5.可以基于流来处理;YAML语法:*YAML的语法和其他语言类似,也可以表达散列表、标量等数据结构。*YAML结构通过空格来展示;序列里的 查看详情
剑客ansible拔剑--yaml语言与inventory主机清单(代码片段)
YAML介绍YAML是一种用来表达资源序列的格式,由于参考了其他多语种,所以具有很高的可读性。YAML是YAMLAin‘taMarkupLanguage的缩写,即YAML不是XML。不过在研发这种语言是,YAML的意思其实是YAMLAnotherMarkupLanguage(仍是一种标记语言)... 查看详情
springboot对于yaml的详细学习和三种属性赋值的实战详解(代码片段)
...YAML有不同的看法。有些人会说YAML代表另一种标记语言。其他人认为“YAML不是标记语言”(“YAML并非标记语言”)。“YAML”只是这句话的递归缩写,强调YAML用于数据而不是文档。1.2新建yaml文件到resource文件夹下,新建application.... 查看详情
ansible自动化运维之yaml基础元素(代码片段)
...ML是一个可读性高的用来表达资料序列的格式。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl等。YAML不是XML,不过,在开发的这种语言时,YAML的意思其实是:“YetAnotherMakupLanguage”(仍是一种标记语言)特点:1:具有很好... 查看详情
自动化运维工具ansible——yaml基础元素(代码片段)
...ML是一个可读性高的用来表达资料序列的格式。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl等。YAML不是XML,不过,在开发的这种语言时,YAML的意思其实是:“YetAnotherMakupLanguage”(仍是一种标记语言) YAML的特点1:具有... 查看详情
springboot(代码片段)
文章目录学习目标一、SpringBoot简介1.入门案例问题导入1.1入门案例开发步骤1.2基于SpringBoot官网创建项目1.3SpringBoot项目快速启动2.SpringBoot概述问题导入2.1起步依赖2.2辅助功能二、基础配置1.配置文件格式问题导入1.0初始环境1.1修... 查看详情
springboot-基础篇复习(全)(代码片段)
...配置比较繁琐,故引入了springboot。目录一、springboot入门案例1.1、入门案例之IDEA联网版1.2、入门案例解析-parent 1.3、入门案例解析-starter 1.4、引导类1.5、内嵌Tomcat 二、REST风格补充2.1、REST风格简介 2.2、Restful风格入门案例2.... 查看详情
webdriver技巧:使用yaml将元素层分离(代码片段)
...都可以闲庭信步了。 首先介绍一下YAML文件YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822。数据结构可以用类似大纲的缩排方式呈现,结构通过 查看详情
如何不编写yaml管理kubernetes应用?(代码片段)
...是以Deployment、StatefulSet为代表的workload工作负载控制器,其他各类资源都围绕这些主要的资源工作。这些资源合并起来,可以为IT技术工作者展现出一个以workload为中心的模型。Kubernetes中所有的资源,都通过声明式配置文件来编... 查看详情
typora入门(代码片段)
...轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别。即时渲染使得你写Markdown就想是写Word文档一样流畅自如,不像其他编辑器的有编辑栏和显示栏。Typora删除了预览窗口,以及所有其他不必... 查看详情
springboot基础入门(代码片段)
SpringBoot基础入门SpringBoot项目创建方式Idea创建SpringBoot官网创建基于阿里云创建项目手工搭建SpringBoot启动parentstarter引导类内嵌tomcat基础配置属性配置配置文件分类yaml文件yaml数据读取整合第三方技术整合JUnit整合MyBatis整合Mybatis-Pl... 查看详情