YAML文件的寫法,以及和JSON的區(qū)別

YAML(YAML Ain't Markup Language)基本規(guī)則與比較

YAML(YAML Ain't Markup Language)是一種人類可讀的、用于數(shù)據(jù)序列化的格式。以下是一些基本的YAML書寫規(guī)則:

基本規(guī)則

  • 縮進

    • 使用空格進行縮進者蠕,推薦使用2個或4個空格。
    • 不允許使用制表符(Tab)進行縮進劈狐。
    • 縮進表示層級關(guān)系兽愤。
  • 鍵值對

    • 使用冒號 : 來分隔鍵和值,鍵和值之間至少有一個空格疏叨。
    • 鍵和值都可以是字符串、數(shù)字穿剖、布爾值蚤蔓、列表或?qū)ο蟆?/li>
  • 注釋

    • 使用 # 開始的行表示注釋,注釋不會被解析糊余。
    • 注釋可以放在單獨一行秀又,也可以在鍵值對之后。

數(shù)據(jù)類型

1 字符串

  • 字符串可以不使用引號贬芥,如果字符串包含特殊字符(如 :)吐辙,需要使用引號。
  • 單引號 ' 和雙引號 " 都可以使用蘸劈。
  • 多行字符串可以使用 |>昏苏。
name: John Doe
description: "A developer"
single_line: "This is a single line string"
multi_line: |
  This is a multi-line string.
  It can contain multiple lines.

2 數(shù)字

  • 可以直接寫整數(shù)或浮點數(shù)。
age: 30
height: 1.75

2 布爾值

  • 使用 true 或 false威沫。
is_active: true
has_account: false

3 列表

  • 使用 - 表示列表項捷雕,每個項前都有一個縮進。
languages:
  - Python
  - JavaScript
  - Go

4 對象

  • 使用縮進表示對象的層級關(guān)系壹甥。
address:
  street: 123 Main St
  city: Anytown
  zip: 12345

示例

以下是一個包含多種數(shù)據(jù)類型的完整YAML示例:

用戶信息

user:
  name: John Doe
  age: 30
  is_active: true
  skills:
    - Programming
    - Writing
  address:
    street: 123 Main St
    city: Anytown
    zip: 12345
  profile:
    description: >
      John is a developer
      and writer.
    bio: |
      He works on various projects.
      Loves coding and sharing knowledge.

YAML 和 JSON 有許多相似之處救巷,都是用于數(shù)據(jù)序列化的格式,并且在很多場景下可以相互轉(zhuǎn)換句柠。不過浦译,它們在語法和使用上也有一些不同之處。以下是一些主要區(qū)別:

YAML 和 JSON 的區(qū)別

1 可讀性

  • YAML 更加注重可讀性溯职,設計上更接近于人類自然語言精盅,減少了許多標點符號,如逗號和引號谜酒。
  • JSON 更加簡潔叹俏,通常使用大量的標點符號,如大括號 {} 和方括號 []僻族。

2 注釋

  • YAML 支持注釋粘驰,可以使用 # 來添加注釋屡谐。
  • JSON 不支持注釋。

3 格式要求

  • YAML 使用縮進來表示層級關(guān)系蝌数,不允許使用制表符(Tab)愕掏,必須使用空格。
  • JSON 使用大括號 {} 表示對象顶伞,使用方括號 [] 表示數(shù)組饵撑,沒有縮進要求,但通常會使用縮進來提高可讀性唆貌。

4 數(shù)據(jù)類型

  • YAML 支持更多的數(shù)據(jù)類型滑潘,比如日期、二進制數(shù)據(jù)等锨咙。
  • JSON 主要支持字符串语卤、數(shù)字、布爾值蓖租、數(shù)組和對象粱侣。

示例對比

以下是相同數(shù)據(jù)在 YAML 和 JSON 中的表示形式:
YAML 示例

user:
  name: John Doe
  age: 30
  is_active: true
  skills:
    - Programming
    - Writing
  address:
    street: 123 Main St
    city: Anytown
    zip: 12345
  profile:
    description: >
      John is a developer
      and writer.
    bio: |
      He works on various projects.
      Loves coding and sharing knowledge.

JSON 示例

{
  "user": {
    "name": "John Doe",
    "age": 30,
    "is_active": true,
    "skills": [
      "Programming",
      "Writing"
    ],
    "address": {
      "street": "123 Main St",
      "city": "Anytown",
      "zip": "12345"
    },
    "profile": {
      "description": "John is a developer and writer.",
      "bio": "He works on various projects.\nLoves coding and sharing knowledge."
    }
  }
}

適用場景

  • YAML 常用于配置文件羊壹,比如在 DevOps 中的 Ansible蓖宦、Kubernetes 配置文件等。
  • JSON 常用于數(shù)據(jù)交換油猫,比如 RESTful API 的請求和響應數(shù)據(jù)格式稠茂。

總的來說,YAML 和 JSON 各有優(yōu)缺點情妖,選擇使用哪種格式取決于具體的使用場景和需求睬关。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市毡证,隨后出現(xiàn)的幾起案子电爹,更是在濱河造成了極大的恐慌,老刑警劉巖料睛,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丐箩,死亡現(xiàn)場離奇詭異,居然都是意外死亡恤煞,警方通過查閱死者的電腦和手機屎勘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來居扒,“玉大人概漱,你說我怎么就攤上這事∠参梗” “怎么了瓤摧?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵竿裂,是天一觀的道長。 經(jīng)常有香客問我姻灶,道長铛绰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任产喉,我火速辦了婚禮捂掰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘曾沈。我一直安慰自己这嚣,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般琐驴。 火紅的嫁衣襯著肌膚如雪刻伊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天士八,我揣著相機與錄音,去河邊找鬼。 笑死九秀,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的粘我。 我是一名探鬼主播鼓蜒,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼征字!你這毒婦竟也來了都弹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤匙姜,失蹤者是張志新(化名)和其女友劉穎畅厢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氮昧,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡框杜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了郭计。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霸琴。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖昭伸,靈堂內(nèi)的尸體忽然破棺而出梧乘,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布选调,位于F島的核電站夹供,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏仁堪。R本人自食惡果不足惜哮洽,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弦聂。 院中可真熱鬧鸟辅,春花似錦、人聲如沸莺葫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捺檬。三九已至再层,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間堡纬,已是汗流浹背聂受。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烤镐,地道東北人蛋济。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像职车,于是被迫代替她去往敵國和親瘫俊。 傳聞我的和親對象是個殘疾皇子鹊杖,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容