zoukankan      html  css  js  c++  java
  • .yaml 文件格式简介

    命名

    YAML 的意思其实是:"Yet Another Markup Language"(仍是一种置标语言)的缩写。

    功能

    YAML的语法和其他高阶语言类似,并且可以简单表达清单、散列表,标量等资料形态、。

    它使用 空白符号缩排 和 大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种设定档、倾印除错内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。

    尽管它比较适合用来表达阶层式(hierarchical model)的数据结构,不过也有精致的语法可以表示关联性(relational model)的资料。

    由于YAML使用空白字符和分行来分隔资料,使的他特别适合用 grep、Python、Perl、Ruby 操作。

    其让人最容易上手的特色是巧妙避开各种封闭符号,如:引号、各种括号等,这些符号在嵌套结构中会变得复杂而难以辨认。

    格式

    多行缩进

    数据结构可以用类似大纲的缩排方式呈现,结构通过 缩进 来表示,连续的项目通过 减号“-”来表示,map 结构里面的 key/value 对用冒号“:”来分隔。样例如下:

    house:
      family:
        name: Doe
        parents:
          - John
          - Jane
        children:
          - Paul
          - Mark
          - Simone
      address:
        number: 34
        street: Main Street
        city: Nowheretown
        zipcode: 12345

    注意:

    1. 字串不一定要用双引号标识;

    2. 在缩排中空白字符的数目并不是非常重要,只要相同阶层的元素左侧对齐就可以了(不过 不能使用TAB字符);

    3. 允许在文件中加入选择性的空行,以增加可读性;

    4. 在一个档案中,可同时包含多个文件,并用“——”分隔;

    5. 选择性的符号“...”可以用来表示档案结尾(在利用串流的通讯中,这非常有用,可以在不关闭串流的情况下,发送结束讯号)。

    单行缩写

    YAML也有用来描述好几行相同结构的数据的缩写语法,数组用'[]'包括起来,hash用'{}'来包括。因此,上面的这个YAML能够缩写成这样:

    house:
      family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] }
      address: { number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 }

    举例:

    john.yaml 文件: 

    name: John Smith 
    age:  37 
    spouse: 
        name: Jane Smith 
        age:  25 
    children: 
        -   name: Jimmy Smith 
            age:  15 
        -   name: Jenny Smith 
            age   12

    数组表示:

    <?php
    $john = array(
    	'name' => 'John Smith',
    	'age' => 37,
    	'spouse' => array(
    		'name' => 'Jane Smith',
    		'age' => 25
    	),
    	'children' => array(
    		0 => array(
    			'name' => 'Jimmy Smith',
    			'age' => 5
    		),
    		1 => array(
    			'name' => 'Jenny Smith',
    			'age' => 3
    		)
    	)
    );

    PHP 解析 Yaml 文件的类: 

    syck:http://pecl.php.net/package/syck

  • 相关阅读:
    springboot和数据库链接关于取名的一些坑
    个人作业——软件评测
    结对第二次作业——某次疫情统计可视化的实现
    结对第一次—疫情统计可视化(原型设计)
    软工实践寒假作业(2/2)
    个人作业——软件工程实践总结&个人技术博客
    个人技术总结——Vxe-table
    个人作业——软件评测
    结对第二次作业——某次疫情统计可视化的实现
    结对第一次—疫情统计可视化(原型设计)
  • 原文地址:https://www.cnblogs.com/52php/p/6480107.html
Copyright © 2011-2022 走看看