Yaml简介

%YAML 1.2
---
YAML: YAML Ain't Markup Language

What It Is: YAML is a human friendly data serialization standard for all programming languages.

一、概述

YAMLYAML Ain't a Markup LanguageYAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:”Yet Another Markup Language“(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。

它的基本语法规则如下:

频率使用上没有JSON高,如果书写有困难,可以直接使用 Json to YAML 互转工具 [4]

二、基础类型

2.1 字符串

str: This is a String

{
  "str": "This is a String"
}

2.2 布尔值

2.3 整数

int: 4

2.4 浮点数

number: 12.30

2.5 空

nullNull~都是空,不指定值默认也是空

2.6 日期

日期采用复合 iso8601 格式的年、月、日表示。

date: '2019-02-19'

三、数据结构

3.1 对象

定义:KEY + : + 空格 + 值,如env: qa,别忘记后面的空格。示例:

browser:
  ie: Internet Explore
  chrome: Chrome
  other:
    safari: Safari
    ff: Firefox

对应JSON:

{
    "browser": {
        "ie": "Internet Explore",
        "chrome": "Chrome",
        "other": {
            "safari": "Safari",
            "ff": "Firefox"
        }
    }
}

说明:上面键值均为字符串,一般情况下不需要加引号,只有在存在反斜杠需要转义的字符时才需要引号。

支持流式风格( Flow style)的语法(用花括号包裹,用逗号加空格分隔,类似 JSON)

browser:
  ie: Internet Explore
  chrome: Chrome
  other: {safari: Safari, ff: Firefox}

3.2 数组

一组连词线开头的行,构成一个数组。

- Internet Explore
- Chrome
- Other

转为JSON为:

[
  "Internet Explore",
  "Chrome",
  "Other"
]

数据也可以用行内表示法:

browser: [Internet Explore, Chrome, other]


{
    "browser": [
        "Internet Explore",
        "Chrome",
        "other"
    ]
}

3.3 复合结构

接下来就是数组和对象进行组合的情况。

code: 0
msg: success
data:
- 
  name: Chrome
  percent: 62.5
-
  name: Internet Explore
  percent: 1.4

-下的第一个键可以提到-后面,如:

code: 0
msg: success
data:
- name: Chrome
  percent: 62.5
- name: Internet Explore
  percent: 1.4

等同于

{
    "code": 0,
    "msg": "success",
    "data": [
        {
            "name": "Chrome",
            "percent": 62.5
        },
        {
            "name": "Internet Explore",
            "percent": 1.4
        }
    ]
}

-- EOF --
最后更新于: 2020-09-24 09:14
发表于: 2019-02-09 20:46
标签: 常用软件 Kubernetes