正如YAML所表示的YAML Ain’t Markup Language,YAML 是一种简洁的非标记语言。YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。

一边学习规则一边可以在在线Demo这个YAML转化JSON网页中进行上手练习

基本规则

YAML有以下基本规则: 
1、大小写敏感 
2、使用缩进表示层级关系 
3、禁止使用tab缩进,只能使用空格键 
4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。 
5、使用#表示注释 
6、字符串可以不用引号标注

三种数据结构

  1. 1map,散列表
  2. 使用冒号(:)表示键值对,同一缩进的所有键值对属于一个map,示例:
  1. # YAML表示
  2. age :
  3. name : huang
  4.  
  5. # 对应的Json表示
  6. {'age':,'name':'huang'}
  7.  
  8. 也可以将一个map写在一行:
  9.  
  10. # YAML表示
  11. {age:,name:huang}
  12.  
  13. # 对应的Json表示
  14. {'age':,'name':'huang'}
  1. 2list,数组
  2. 使用连字符(-)表示:
  1. # YAML表示
  2. - a
  3. - b
  4. -
  5.  
  6. # 对应Json表示
  7. ['a','b',]
  8.  
  9. 也可以写在一行:
  10.  
  11. # YAML表示
  12. [a,b,c]
  13.  
  14. # 对应Json表示
  15. [ 'a', 'b', 'c' ]
  1. 3scalar,纯量
  2. 数据最小的单位,不可以再分割。
  1. 数据结构嵌套
  2. maplist的元素可以是另一个map或者list或者是纯量。由此出现4种常见的数据嵌套:
  1. map嵌套map
  2.  
  3. # YAML表示
  4. websites:
  5. YAML: yaml.org
  6. Ruby: ruby-lang.org
  7. Python: python.org
  8. Perl: use.perl.org
  9.  
  10. # 对应Json表示
  11. { websites:
  12. { YAML: 'yaml.org',
  13. Ruby: 'ruby-lang.org',
  14. Python: 'python.org',
  15. Perl: 'use.perl.org' } }
  16.  
  17. map嵌套list
  18.  
  19. # YAML表示
  20. languages:
  21. - Ruby
  22. - Perl
  23. - Python
  24. - c
  25.  
  26. # 对应Json表示
  27. { languages: [ 'Ruby', 'Perl', 'Python', 'c' ] }
  28.  
  29. list嵌套list
  30.  
  31. # YAML表示
  32. -
  33. - Ruby
  34. - Perl
  35. - Python
  36. -
  37. - c
  38. - c++
  39. - java
  40.  
  41. # 对应Json表示
  42. [ [ 'Ruby', 'Perl', 'Python' ], [ 'c', 'c++', 'java' ] ]
  43.  
  44. 除此以外,还可以如下表示该结构
  45.  
  46. # 方法2
  47. - - Ruby
  48. - Perl
  49. - Python
  50. - - c
  51. - c++
  52. - java
  53.  
  54. # 方法3
  55. - [Ruby,Perl,Python]
  56. - [c,c++,java]
  57.  
  58. list嵌套map
  59.  
  60. # YAML表示
  61. -
  62. id:
  63. name: huang
  64. -
  65. id:
  66. name: liao
  67.  
  68. # 对应Json表示
  69. [ { id: , name: 'huang' }, { id: , name: 'liao' } ]

YAML基础语法的更多相关文章

  1. springboot的yaml基础语法与取值,配置类,配置文件加载优先级

    1.基本语法k:(空格)v:表示一对键值对(一个空格必须有):以空格的缩进来控制层级关系:只要是左对齐的一列数据,都是同一个层级的属性和值也是大小写敏感: server: port: 8081 pat ...

  2. YAML 基础

    YAML 基础 简介 对象 数组 常量 引用 1.  简介 YAML 是专门用来写配置文件的语言,非常简洁和强大! 它的基本语法规则有: 大小写敏感: 使用缩进表示层级关系: 缩进时不允许使用 Tab ...

  3. YAML基础知识及搭建一台简洁版guestbook

    一,前言 前面我们已经搭建过简易版k8s集群了,在此基础上可以搭建一个简洁版guestbook ,以便来学习k8s创建pod的整个过程. 二,在此之前,我们还需要学习一下YAML基础知识 YAML 基 ...

  4. YAML(YML)语法详解

    ansible playbook是由yaml(yml)语法书写,结构清晰,可读性强,所以必须掌握yaml(yml)基础语法 语法 描述 锁进  YAML使用固定的缩进风格表示层级结构,每个缩进由两个空 ...

  5. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  6. iOS-----正则表达式的基础语法

    正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...

  7. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  8. emmet 系列(1)基础语法

    emmet 系列(1)基础语法 emmet 是一个能显著提升开发html和css开发效率的web开发者工具 emmet基本上目前已知的编辑器都有相应的插件,各个编辑器的emmet插件的下载地址:点我下 ...

  9. Scala基础语法 (一)

    如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我 ...

随机推荐

  1. 19.1-uC/OS-III内存管理应用

    一个处理器,在不断地分配和释放内存的过程中,一整块连续的内存被分散为很多离散的小块内存, 这些叫做内存碎片, 内存碎片过多会导致内存的浪费. uC/OS 的内存管理机制就是为了尽量减少内存碎片.大致的 ...

  2. Spring 学习教程(二): IOC/DI+AOP

    1. IOC / DI Spring是一个基于IOC和AOP的结构J2EE系统的框架 IOC 反转控制 是Spring的基础,Inversion Of Control 简单说就是创建对象由以前的程序员 ...

  3. 使用Typescript写的Vue初学者Hello World实例(实现按需加载、跨域调试、await/async)

    万事开头难,一个好的Hello World程序可以节省我们好多的学习时间,帮助我们快速入门.Hello World程序之所以是入门必读必会,就是因为其代码量少,简单易懂.但我觉得,还应该做到功能丰富, ...

  4. 《linux就该这么学》第十节课:第8章iptables和firewalld

            网卡配置: 物理机:192.168.10.1/24 服务器:192.168.10.10/24 客户端:192.168.10.20/24         1.vim  /etc/sysc ...

  5. Unity之配置转换工具

    本人写的配置转换工具,可将策划的配置excel文件一键转换为unity的asset文件或lua代码: 转换请注明出处:http://www.cnblogs.com/jietian331/p/86252 ...

  6. js页面路径拼接字符串进行参数传递

    页面路径拼接字符串进行参数传递: 参数传递页面: <style> input,button{ border: 1px solid red; } body { font-size:24px; ...

  7. 字典 hash

    字典是按照hash存的,他会映射一个hash表,所以查找的时候根据一些算法会很快: 参考: https://harveyqing.gitbooks.io/python-read-and-write/c ...

  8. usdt节点启动慢和队列深度超出了范围问题

    usdt节点启动慢和队列深度超出了范围问题 usdt的连接节点报错Work queue depth exceeded(队列深度超出了范围)大概是什么问题?重启了几次节点都不行队列深度超出了范围,估计是 ...

  9. Centosphp安装cassandra扩展

    一.准备 当前php版本PHP Version 5.5.10,首先去http://pecl.php.net/package/cassandra,找到对应的php版本 二.下载安装 # wget htt ...

  10. MI200e电力线通讯

    最近做课设,选了电力线通讯这种途径,经过百度google等一番查询,最终敲定了mi200e这块国产芯片. 课设要求就是双机通讯,互传传感器信息以及模拟一个时钟 然后淘宝买了拆机的成品,我拿回来把mcu ...