1. 程式人生 > >yaml 格式

yaml 格式

rep blank 方式 結構 another esc 標識 yam tac

yaml:Yet Another Markup Language

優點:
1、語法簡單,大綱方式呈現,可讀性高
2、使用空白字符和分行來分隔資料,可以用於 grep、Python、Perl、Ruby操作
3、減少了很多符號,引號,括號等
4、提取記錄之前不需要全部讀取數據

用途:可以做序列化或配置文件


格式:
1、字串不一定要用雙引號標識;
2、在縮排中空白字符的數目並不是非常重要,只要相同階層的元素左側對齊就可以了(不過不能使用TAB字符);
3、允許在文件中加入選擇性的空行,以增加可讀性;
4、在一個檔案中,可同時包含多個文件,並用“——”分隔;

5、選擇性的符號“...”可以用來表示檔案結尾(在利用串流的通訊中,這非常有用,可以在不關閉串流的情況下,發送結束訊號)。


缺點:YAML沒有自己的數據類型的定義,而是使用實現語言的數據類型。
相同的字符串不同的語言解析的類型不同,存在兼容性問題

yaml 中 map是有序的,json中沒有
要將YAML置入JSON中,需要用引號框住,並轉換內部的所有引號

php示例

$yaml = <<<EOD
--- #文檔開始符
invoice: 34843 #map結構,註意空格
date: "2001-01-23" #字符串可以不用引號,但有特殊字符時需要
bill-to: &id001 #錨點 given: Chris family: Dumars address: lines: |- # | 後的字符串換行符會保留 458 Walkman Dr. Suite #292 city: Royal Oak state: MI postal: 48046 ship-to: *id001 #引用錨點 product: - sku: BL394D quantity: 4 description: Basketball price
: 450 - sku: BL4438H quantity: 1 description: Super Hoop price: 2392 tax: 251.420000 total: 4443.520000 comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338. ... #文檔開始符,單個文檔可省略 EOD; $parsed = yaml_parse($yaml); ee($parsed);

參考:

http://www.yaml.org/spec/1.2/spec.html#

在線js解析器

http://www.stay-stupid.com/?p=357

官方文檔

yaml 格式