zoukankan      html  css  js  c++  java
  • YAML书写规则与数据结构

     

     

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

    基本规则

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

     

    三种数据结构

    1、map,散列表 
    使用冒号(:)表示键值对,同一缩进的所有键值对属于一个map,示例:

    复制代码
    # YAML表示
    age : 12
    name : huang
    
    # 对应的Json表示
    {'age':12,'name':'huang'}
    复制代码

    也可以将一个map写在一行:

    # YAML表示
    {age:12,name:huang}
    
    # 对应的Json表示
    {'age':12,'name':'huang'}

    2、list,数组 
    使用连字符(-)表示:

    复制代码
    # YAML表示
    - a
    - b
    - 12
    
    # 对应Json表示
    ['a','b',12]
    复制代码

    也可以写在一行:

    # YAML表示
    [a,b,c]
    
    # 对应Json表示
    [ 'a', 'b', 'c' ]

    3、scalar,纯量 
    数据最小的单位,不可以再分割。

    以下数据类型都属于 JavaScript 的纯量。

    • 字符串
    • 布尔值
    • 整数
    • 浮点数
    • Null
    • 时间
    • 日期

    数值直接以字面量的形式表示。

    布尔值用truefalse表示。

    null~表示。

    时间采用 ISO8601 格式。 如2001-12-14t21:59:43.10-05:00

    日期采用复合 iso8601 格式的年、月、日表示。如1976-07-31

    参考: http://www.ruanyifeng.com/blog/2016/07/yaml.html

    数据结构嵌套

    map和list的元素可以是另一个map或者list或者是纯量。由此出现4种常见的数据嵌套: 
    1、map嵌套map

    复制代码
    # YAML表示
    websites:
     YAML: yaml.org 
     Ruby: ruby-lang.org 
     Python: python.org 
     Perl: use.perl.org 
    
    # 对应Json表示
    { websites: 
       { YAML: 'yaml.org',
         Ruby: 'ruby-lang.org',
         Python: 'python.org',
         Perl: 'use.perl.org' 
       }
    }
    复制代码

    2、map嵌套list

    复制代码
    # YAML表示
    languages:
     - Ruby
     - Perl
     - Python 
     - c
    
    # 对应Json表示
    { languages: [ 'Ruby', 'Perl', 'Python', 'c' ] }
    复制代码

    3、list嵌套list

    复制代码
    # YAML表示
    -
      - Ruby
      - Perl
      - Python 
    - 
      - c
      - c++
      - java
    
    # 对应Json表示
    [ [ 'Ruby', 'Perl', 'Python' ], [ 'c', 'c++', 'java' ] ]
    复制代码

    还可以如下表示该结构:

    复制代码
    # 方法2
    - - Ruby
      - Perl
      - Python 
    - - c
      - c++
      - java
    
    # 方法3
    - [Ruby,Perl,Python]
    - [c,c++,java]
    复制代码

    4、list嵌套map

    复制代码
    # YAML表示
    -
      id: 1
      name: huang
    -
      id: 2
      name: liao
    
    # 对应Json表示
    [ { id: 1, name: 'huang' }, { id: 2, name: 'liao' } ]
    复制代码
    *****************************************************
    *** No matter how far you go, looking back is also necessary. ***
    *****************************************************
  • 相关阅读:
    EL表达式具体解释
    Android 实战美女拼图游戏 你能坚持到第几关
    redis sentinel安装及配置(单机版)
    ElasticSearch scroll查询 api
    springboot自动配置原理
    kafka实践
    Springboot mybatis
    计算机原理
    快速排序算法
    maven常见报错问题
  • 原文地址:https://www.cnblogs.com/pejsidney/p/12332872.html
Copyright © 2011-2022 走看看