YAML JSON XML如何選擇

2022-07-12 07:42:09 字數 1243 閱讀 7101

本文翻譯下文會針對當前現有的資料序列化語言做下梳理。重點突出yaml是什麼,優缺點,和yml/json對比,以便於大家依據自己場景選擇合適的語言。

yaml和json、xml一樣是資料序列化語言,使用縮進來描述格式化資料。

下面的例子可以看到其如何工作的:

就像python一樣有個縮排約束,假如有過python開發體驗的話,就會很明顯的發現其使用縮排的數量來定義不同的區塊。正如前面提到,有很多如json、xml這樣被廣泛使用的序列化語言。

對於序列化語言來說,使用場景如下:

yaml,xml和json是常用的資料序列化語言,下面會針對三者之間的不同展開敘述。原作者針對如何選擇適合自己專案的資料序列化語言給出了部分建議,以供參考。

yaml的例子中,比較個性的就是每個資料塊都有相對應的空白格。

這裡就直接照搬原文示例了:

現在時候,大家發現三者的不同取決於在何種應用中使用。

資料以良好的資料結構儲存在不同序列化語言中,無論使用哪一種,都要包含以下四種主要的活動:

首先自己開發可能存在一些問題,使用優秀的開源包來避免該問題,當然還節約時間。

因此在使用某一種序列化語言之前,首先應該查詢解析器,閱讀文件, 選擇合適自己專案的序列化語言。對於自己來說,簡單的呼叫方法就能解決的事情當然要比自己手動實現要好。

雖然都說python與ymal更搭,但是原作者在python專案中卻選擇了json。對此其理由如下:

原作者負責的是符合redfish標準的,使用rest api和bottle 框架(乙個python框架),核心語言是python的乙個專案。同樣面臨著需要在伺服器和客戶端轉換資料的場景,選中json作為序列化語言,業界早已存在python語言開發的轉義包。導致這個選擇的重要原因是,python的字典和所以的序列化語言一樣不過是使用name-value儲存資料的**,仔細檢視會發現json 的map是格式更接近python的字典。

再次感謝原作者的兩篇文章

參考文章

如何選擇網域名稱

一系列的事件讓人們對cn網域名稱投資興致盎然,然而,網域名稱如何註冊?好網域名稱如何起?記者經過多方探訪,總結出cn網域名稱投資的 實用手冊 好網域名稱如何評估 網域名稱的最終價值體現在它是否能帶來流量和利潤,這些結果都將決定你的未來買家願意出多少錢來購買你的網域名稱。所以,衡量乙個網域名稱價值標準...

如何選擇集合

在程式設計的過程中,選擇何種集合至關重要,下面由我來總結下選擇集合的方法 選擇集合所考慮的關鍵問題在於 效率代價與空間代價的平衡問題。效率代價是指執行的效率,簡單的說如果乙個資源沒有把索引記錄下來,那麼要找到他你就需要執行程式,那麼你的代價在於系統花錢了時間。空間代價是指存放的空間消耗記憶體的代價,...

如何選擇集合

在程式設計的過程中,選擇何種集合至關重要,下面由我來總結下選擇集合的方法 選擇集合所考慮的關鍵問題在於 效率代價與空間代價的平衡問題。效率代價是指執行的效率,簡單的說如果乙個資源沒有把索引記錄下來,那麼要找到他你就需要執行程式,那麼你的代價在於系統花錢了時間。空間代價是指存放的空間消耗記憶體的代價,...