日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

yaml 解决问题

發布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yaml 解决问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

yaml 是什么?

在 github 一些開源項目里經常可以看到 .travis.yml 文件,后來接觸持續集成這個概念時發現很多文件都是 .yml 后綴的文件。我在 阮一峰-YAML 語言教程 里了解了它的作用以及基本寫法,他的那篇文章描述的略微有點啰嗦,實際看到的大多數配置文件還是及其簡單的,而我們要做的是能讀懂它們,就像讀懂 .json 一樣。

yaml 語言(或者說是一種規范吧)可以編寫 .yml 文件,和 json 一樣是配置文件。也許是有人認為 json 的寫法不爽,于是乎發明了這玩意,通過下面的例子,可以看到 yaml 寫的配置文件確實要比 json 方便很多。

編寫規則

  • 大小寫敏感

json 里也是大小寫敏感的,這點二者一樣。

  • 使用縮進表示層級關系

json 中使用 {} 的嵌套表示層級,而 yaml 使用縮進,后者更方便一些。

  • # 表示注釋

json 文件中不允許寫注釋,對于很長配置文件全靠字面意思猜挺痛快的,yaml 可以寫注釋,:100:

數據結構

配置文件理應十分簡潔,與 json 相比,不用頻繁的寫 {} 和 [],畢竟換行和 - 符號更加簡潔,字符串也不需要頻繁的加引號(無論是單引號還是雙引號)。

對象

# conf.yml animal: pets hash: { name: Steve, foo: bar }

轉換為 json 為:

{{ "animal": "pets" },{ "hash": { "name": "Steve", "foo": "bar" } } }

數組

# conf.yml Animal:- Cat- Dog- Goldfish

轉換為 json 為:

{ "Animal": [ "Cat", "Dog", "Goldfish" ] }

字符串

# conf.yml # 正常情況下字符串不用寫引號 str: 這是一行字符串 # 字符串內有空格或者特殊字符時需要加引號 str: '內容: 字符串'

null

# conf.yml parent: ~

.yml 中 ~ 表示 null,轉換為 json 為:

{ "parent": null }

1. 認識 YAML

  YAML是一個類似 XML、JSON 的標記性語言。YAML 強調以數據為中心,并不是以標識語言為重點。因而 YAML 本身的定義比較簡單,號稱“一種人性化的數據格式語言”。

1.1 YAML 的設計目標:

人類容易閱讀

可用于不同程序間的數據交換

適合描述程序所使用的數據結構,特別是腳本語言

豐富的表達能力與可擴展性

易于使用

1.2 YAML 與 XML、JSON

YAML 與 XML

具有 XML 同樣的優點,但比 XML 更加簡單、敏捷等

YAML 與 JSON

JSON 可以看作是 YAML 的子集,也就是說 JSON 能夠做的事情,YAML 也能夠做

YAML 能表示得比 JSON 更加簡單和閱讀,例如“字符串不需要引號”。所以 YAML 容易可以寫成 JSON 的格式,但并不建議這種做

YAML 能夠描述比 JSON 更加復雜的結構,例如“關系錨點”可以表示數據引用(如重復數據的引用)。

1.3 YAML 組織結構

  YAML 文件可以由一或多個文檔組成(也即相對獨立的組織結構組成),文檔間使用“---”(三個橫線)在每文檔開始作為分隔符。同時,文檔也可以使用“...”(三個點號)作為結束符(可選)。如下圖所示:

如果只是單個文檔,分隔符“---”可省略。

每個文檔并不需要使用結束符“...”來表示結束,但是對于網絡傳輸或者流來說,作為明確結束的符號,有利于軟件處理。(例如不需要知道流關閉就能知道文檔結束) <br/>

  YAML 認為數據由以下三種結構組成:(每個文檔由三種結構混合組成)

標量 (相當于數據類型)

序列 (相當于數組和列表)

鍵值表(相當于 Map 表)

2. YAML 編寫規范

規范一:文檔使用 Unicode 編碼作為字符標準編碼,例如 UTF-8

規范二:使用“#”來表示注釋內容

# 客戶訂單

date: 2015-02-01

customer:

? - name: Jai

items:

? - no: 1234 ? ? ? ? # 訂單號

? - descript: cpu

規范三:使用空格作為嵌套縮進工具。通常建議使用兩個空格縮進,不建議使用 tab (甚至不支持)

規范四:序列表示

使用“-”(橫線) + 單個空格表示單個列表項

--- # 文檔開始

- 第一章 簡介

- 第二章 設計目錄

使用"[]"表示一組數據

--- # 文檔開始

[blue, red, green]

組合表示。每個結構都可以嵌套組成復雜的表示結構。

--- # 文檔開始

- [blue, red, green] ? ? # 列表項本身也是一個列表

- [Age, Bag]

- site: {osc:www.oschina.net, baidu: www.baidu.com} ?# 這里是同 鍵值表 組合表示

規范五:鍵值表

使用 “:”(冒號) + 空格表示單個鍵值對

# 客戶訂單

date: 2015-02-01

customer:

? - name: Jai

items:

? - no: 1234 ? ? ? ? # 訂單號

? - descript: cpu

? - price: ¥800.00

使用"{}"表示一個鍵值表

# 客戶訂單

date: 2015-02-01

customer:

? - name: Jai

items: {no: 1234, descript: cpu, price: ¥800.00}

"? " 問號+空格表示復雜的鍵。當鍵是一個列表或鍵值表時,就需要使用本符號來標記。

?# 使用一個列表作為鍵

?? [blue, reg, green]: Color

?# 等價于

?? - blue

? ?- reg

? ?- gree

?: Color

組合表示。每個結構都可以嵌套組成復雜的表示結構。?

?Color:

? ? - blue

? ? - red

? ? - green

?

?# 相當于 (也是 JSON 的表示)

?{Color: [blue, red, green]}

?div:

? ? - border: {color: red, width: 2px}

? ? - background: {color: green}

? ? - padding: [0, 10px, 0, 10px]

?# 使用縮進表示的鍵值表與列表項

?items:

? ? - item: cpu

? ? ? model: i3

? ? ? price: ¥800.00

? ? - item: HD

? ? ? model: WD

? ? ? price: ¥450.00

?# 上面使用 “-” 前導與縮進來表示多個列表項,相當于下面的JSON表示

?items: [{item:cpu, model:i3, price:¥800.00}, {item:HD, model:WD, price: ¥450.00}]

規范六:文本塊

使用 “|” 和文本內容縮進表示的塊:保留塊中已有的回車換行。相當于段落塊

yaml: | ? ? ?# 注意 ":" 與 "|" 之間的空格

? ?JSON的語法其實是YAML的子集,大部分的JSON文件都可以被YAML的解釋器解釋。

? ?如果你想更深入的學習YAML,我建議你去 http://www.yaml.org 看看

使用 “>” 和文本內容縮進表示的塊:將塊中回車替換為空格,最終連接成一行。

yaml: > ? ? ?# 注意 ":" 與 ">" 之間的空格,另外可以使用空行來分段落

? ?JSON的語法其實是YAML的子集,

? ?大部分的JSON文件都可以被YAML的解釋器解釋。

? ?如果你想更深入的學習YAML,我建議你去 http://www.yaml.org 看看

使用定界符“”(雙引號)、‘’(單引號)或回車表示的塊:最終表示成一行。

yaml: ? ? # 使用回車的多行,最終連接成一行。

? ?JSON的語法其實是YAML的子集,

? ?大部分的JSON文件都可以被YAML的解釋器解釋。

yaml: ? ? # 使用了雙引號,雙引號的好處是可以轉義,即在里面可以使用特殊符號

? ?"JSON的語法其實是YAML的子集,

? ?大部分的JSON文件都可以被YAML的解釋器解釋。"

規范七:數據類型的約定

對一些常用數據類型的表示格式進行了約定,包括:

?integer: 12345 ? ? # 整數標準形式

?octal: 0o34 ? ? ? ?# 八進制表示,第二個是字母 o

?hex: 0xFF ? ? ? ? ?# 十六進制表示

?

?float: 1.23e+3 ? ? # 浮點數

?fixed: 13.67 ? ? ? # 固定小數

?minmin: -.inf ? ? ?# 表示負無窮

?notNumber: .NaN ? ?# 無效數字

?

?null: ? ? ? ? ? ? ?# 空值

?boolean: [true, false] # 布爾值

?string: ‘12345‘ ? ?# 字符串

?

?date: 2015-08-23 ? # 日期

?datetime: 2015-08-23T02:02:00.1z ?# 日期時間

?iso8601: 2015-08-23t21:59:43.10-05:00 ?# iso8601 日期格式

?spaced: 2015-08-23 21:59:43.10 -5 ? ? ?# ?

“!”(嘆號)顯式指示類型,或自定義類型標識。單嘆號通常是自定義類型,雙嘆號是內置類型

?isString: !!str 2015-08-23 ? ? # 強調是字符串不是日期數據

?picture: !!binary | ? ? ? ? ? ?# Base64 ?圖片

? ? ?R0lGODlhDAAMAIQAAP//9/X

? ? ?17unp5WZmZgAAAOfn515eXv

? ? ?Pz7Y6OjuDg4J+fn5OTk6enp

? ? ?56enmleECcgggoBADs=

?#下面是內置類型

?!!int ? ? ? ? ? ? ? # 整數類型

?!!float ? ? ? ? ? ? # 浮點類型

?!!bool ? ? ? ? ? ? ?# 布爾類型

?!!str ? ? ? ? ? ? ? # 字符串類型

?!!binary ? ? ? ? ? ?# 也是字符串類型

?!!timestamp ? ? ? ? # 日期時間類型

?!!null ? ? ? ? ? ? ?# 空值

?!!set ? ? ? ? ? ? ? # 集合

?!!omap, !!pairs ? ? # 鍵值列表或對象列表

?!!seq ? ? ? ? ? ? ? # 序列,也是列表

?!!map ? ? ? ? ? ? ? # 鍵值表

?#下面是一些例子:

?--- !!omap

?- Mark: 65

?- Sammy: 63

?- Key: 58

?--- !!set ? ? ? ? ? # 注意,“?”表示鍵為列表,在這里列表為 null

?? Mark

?? Sammy

?? Key

?# 下面是自定義的類型或標識

?%TAG ! tag:clarkevans.com,2002: ? # % 是指令符號

?--- !shape

?# Use the ! handle for presenting

?# tag:clarkevans.com,2002:circle

?- !circle

? ?center: &ORIGIN {x: 73, y: 129}

? ?radius: 7

?- !line

? ?start: *ORIGIN

? ?finish: { x: 89, y: 102 }

?- !label

? ?start: *ORIGIN

? ?color: 0xFFEEBB

? ?text: Pretty vector drawing.

規范八:錨點與引用,定義數據的復用。

第一步:使用 “&” 定義數據錨點(即要復制的數據)

第二步:使用 “*” 引用上述錨點數據(即數據的復制目的地)

?---

?hr:

? ?- Mark McGwire

? ?# Following node labeled SS

? ?- &SS Sammy Sosa ? ? ? ? ? ?# 定義要復制的數據

?rbi:

? ?- *SS # Subsequent occurrence ? 這里是數據復制目標

?

總結

以上是生活随笔為你收集整理的yaml 解决问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: caoporn国产 | 亚洲欧美日韩国产一区二区三区 | 无码久久精品国产亚洲av影片 | 国产主播在线一区 | 91国内 | 天天在线免费视频 | 天天人人综合 | 亚洲xx网 | 久久久久久久色 | 一区二区在线视频播放 | 国产精品网站在线 | 一区二区三区 欧美 | 女人免费视频 | 91免费网址| 日韩欧美视频 | 免费色网址 | 色吧在线观看 | 新97超碰| 国产精品三级久久久久久电影 | 日韩精品系列 | 免费毛片在线播放免费 | 日韩爱爱免费视频 | 日韩精品亚洲一区 | 日韩有码在线观看 | 侵犯亲女在线播放视频 | www.毛片.com| 国产熟妇搡bbbb搡bbbb | 一起艹在线观看 | 91免费黄视频| 五月天激情啪啪 | 亚洲怡春院 | 欧美日韩免费在线 | 一级免费观看 | 91精品一区二区三区在线观看 | 亚洲射射射 | 中文字幕在线播出 | 黄色网战在线观看 | 精品成人av一区二区三区 | 成人一二区 | 黄在线网站 | 日韩av在线看 | 狠狠躁夜夜躁av无码中文幕 | 香蕉久草 | 97夜夜| 国产男男gay网站 | 黄色片网站在线播放 | 亚洲欧美国产一区二区 | 亚洲欧美在线综合 | 国产精品一区二区6 | 欧美最猛黑人xxxx | 伊人久久大香线蕉成人综合网 | 污污av| 亚洲熟女少妇一区二区 | 黄色网页免费在线观看 | 女同vk | 国产在线观看xxx | 丁香花婷婷 | 欧美自拍偷拍一区二区 | 99热国产精品| 日韩在线视频网 | 国产男男网站 | av老司机在线播放 | 国产欧美一区二区三区视频 | 久久无码精品丰满人妻 | 男男啪啪网站 | 97se亚洲国产综合在线 | 免费看国产片在线观看 | 欧美黑人精品一区二区不卡 | 99re国产 | 日韩福利网站 | 日韩六十路 | 婷婷导航 | 精品区在线观看 | 国产一区二区99 | 黄色成人在线网站 | 99热精品在线播放 | av高清一区 | 成人三级黄色 | 精品久久久久久亚洲 | 韩国三级做爰视频 | 成人网页 | 亚洲影院在线 | 成人性生交大片免费看 | 美女脱了裤子让男人捅 | 国产黄色三级 | 免费天堂av | 欧美一级免费看 | 成人羞羞国产免费动态 | 日本韩国在线 | 激情综合站| 国产精品自拍电影 | 夜夜草影院| 欧美熟妇另类久久久久久不卡 | 国产网站大全 | 好男人香蕉影院 | 在线激情网 | 国产又黄又爽 | 亚洲一区二区三区在线观看视频 | 中文字幕一区二区三区四区免费看 |