YAML语法,yml文件语法

YAML(/ˈjæməl/,尾音相似 camel 骆驼)是一个可读性高,用来表达数据序列化的格式。YAML 参考了其余多种语言,包括: C 语言、 Python、Perl,并从 XML、电子邮件的数据格式(RFC 2822)中得到灵感。Clark Evans 在 2001 年首次发表了这种语言 ,另外 Ingy döt Net 与 Oren Ben-Kiki 也是这语言的共同设计者 。当前已经有数种编程语言或脚本语言支持(或者说解析)这种语言。css

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

功能

YAML 的语法和其余高级语言相似,而且能够简单表达清单、散列表,标量等数据形态。 它使用空白符号缩进和大量依赖外观的特点,特别适合用来表达或编辑数据结构、各类配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和 YAML 很是接近)。尽管它比较适合用来表达层次结构式(hierarchical model)的数据结构,不过也有精致的语法能够表示关系性(relational model)的数据。因为 YAML 使用空白字符和分行来分隔数据,使得它特别适合用 grep/Python/Perl/Ruby 操做。其让人最容易上手的特点是巧妙避开各类封闭符号,如:引号、各类括号等,这些符号在嵌套结构时会变得复杂而难以辨认。python

基本用法

environments:
dev:
url: http://dev.bar.com
name: Developer Setup
prod:
url: http://foo.bar.com
name: My Cool App
name: My Cool App

等同于如下properties配置:spring

environments.dev.url=http://dev.bar.com
environments.dev.name=Developer Setup
environments.prod.url=http://foo.bar.com
environments.prod.name=My Cool App

list

my:
 servers:
   - dev.bar.com
   - foo.bar.com

 等同于:编程

my.servers[0]=dev.bar.com
my.servers[1]=foo.bar.com

map

bean.strstrmap[key1]: value1
bean.strstrmap[key2]: value2

bean.strobjmap[key2]:
  value2Prop1: xxx
  value2Prop2: yyy

注释 

#comment

--- 表示一个文档的开始

能够用于定义不一样的profile数据结构

server:
    address: 192.168.1.2
---
spring:
    profiles: dev
    server:
        address: 127.0.0.1
---
spring:
    profiles: stg
    server:
        address: 192.168.1.3
相关文章
相关标签/搜索