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
相關文章
相關標籤/搜索