zoukankan      html  css  js  c++  java
  • 通过一篇YAML来学习YAML

    yaml 兼容 json,至今已发展至 1.2版。支持N多种编程语言。官网:http://www.yaml.org/

    格式在线校验:http://nodeca.github.io/js-yaml/

    下面就通过一篇YAML文件,来学习YAML:

    %yaml 1.2
    %TAG !tagRef! tag:yaml.org,2002:  # %TAG !name! tag:url
    --- #块分隔符。既是指令声明的结束符,又是文档块的分割标记
    yaml online study: http://nodeca.github.io/js-yaml/ # 单行表示时,在 : 后面得有空格。这个是yaml学习校验的网站。可以在这里进行测试学习
    
    basic structures: # 折行表示时,在 : 后面则不必有空格
        indent style: 文档的结构,由缩进来决定。为了保证可维护性,tab键不能用作缩进,主要因为不同操作系统,对tab处理不同。
        separation space: 空格是字符 分隔 符(包括tab)
        comment: 注释。使用 # 来作注释
        tag:  # 标记,可以分为全局tag,和Local tag
            - global :  global 可以被其他的 yaml引用,且要保证唯一性。采用url schema,用于定位全局标签的。类似于xml namespace.
            - local : # local不会被其他yaml使用,也不需要保证唯一性。local tag一般采用 ! 作为标示符
                primary tag handle:  使用! 作为一级标签处理
                secondary tag handle : # 使用!! 作为二级标签处理。通常是指定数据类型
                     !!map {
                            ? !!str "First occurrence"
                            : &A !!str "Value",  # 声明一个anchor A
                            ? !!str "Second occurrence"
                            : *A,  # use the anchor A
                        }
                named tag handle : #需要使用 %TAG 来定义的。the follow is a named tag
                    examples: {
                        !tagRef!str foo bar : url # 这里引用了在文档开始定义的命名标签
                    }
            
        directive: 
            - yaml : yaml指令用来指定当前文档的YAML版本。它的格式是 %yaml $version。该指令放在文件首行,第二行应该是块分隔符。
            - tag:  参考上面的tag说明
        
        datatype:
            literal : # 一般字面量
                string :  字符串,可以使用 !!str 来限定数据类型
                int : 整数,可以使用 !!int 来限定数据类型
                float : 浮点数,可以使用 !!float 来限定数据类型
                bool : 布尔值,可以使用 !!bool 来限定数据类型。参考http://yaml.org/type/bool.html
                null: 空值。可以使用!!null来限定数据类型
                timestamp: 时间戳。可以使用!!timestamp来限定数据类型
                binary:  Base64的字符串表示。可以使用!!可以使用!!binary来限定数据类型来限定数据类型。参考http://yaml.org/type/binary.html
            collection : #集合
                sequence: #序列,也称为有序集合。
                    - 张三
                    - 李四
                    - 王五
                set: # 集合。可以将其理解为java中的 hashMap,key不为null,value是null.
                    ? hello
                    ? yaml set
                map: # Unordered set of key: value pairs.
                    cloc2: 
                        Clark : Evans,
                        Brian : Ingerson
                        Oren : Ben-Kiki
                omap: # ordered set of key: value pairs.
                    cloc2: 
                        Clark : Evans,
                        Brian : Ingerson
                        Oren : Ben-Kiki
        textBlock:  #文本块
                block1: |
                    absdfas
                    sdfasdf
                    asdfas
                block2: >
                    absdfas
                    sdfasdf
                    asdfas
                block3: "
                    absdfas
                    sdfasdf
    
                    asdfas"
                block4: '
                    absdfas
                    sdfasdfd
                    asdfas'
        anchor: # 锚点
            a: !!str &a1 b  # 字符串b 处加了锚点a1
            c: *a1 # 引用锚点a1
    ... 
  • 相关阅读:
    关于MD5的个人笔记
    QueryString 页面传值方法
    酒店管理系统房态图的效果制作
    开始我的学习之路
    SQL取数据库名,取表名,取列名
    鼠标/键盘事件
    C#皮肤使用例子.
    C#调用WIN API
    C#中定时器的使用方法
    C#随机点名程序例子(名字由配置文件提供)
  • 原文地址:https://www.cnblogs.com/f1194361820/p/8559838.html
Copyright © 2011-2022 走看看