亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

YAML和JSON有什么區別?什么時候比較喜歡一個

YAML和JSON有什么區別?什么時候比較喜歡一個

YAML和JSON有什么區別?什么時候比較喜歡一個考慮到以下因素,我們何時應該優先使用YAML而不是JSON,反之亦然?性能(編碼/解碼時間)內存消耗表達清晰度庫可用性,易用性(我更喜歡C)我計劃在嵌入式系統中使用這兩個中的一個來存儲配置文件。
查看完整描述

3 回答

?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

從技術上講,YAML是JSON的超集。這意味著,至少在理論上,YAML解析器可以理解JSON,但不一定相反。

請參閱標題為“YAML:與JSON的關系”的部分中的官方規范。

一般來說,我喜歡YAML中某些JSON中沒有的東西。

  • 正如@jdupont指出的那樣,YAML在視覺上更容易看。事實上,YAML主頁本身就是有效的YAML,但人們很容易閱讀。

  • YAML能夠使用“錨點”引用YAML文件中的其他項目。因此,它可以處理MySQL數據庫中可能找到的關系信息。

  • YAML  YAML文件中嵌入其他序列化格式(如JSON或XML)更為強大。

實際上,最后兩點都不會對你或我所做的事情產生影響,但從長遠來看,我認為YAML將是一種更強大和可行的數據序列化格式。

目前,AJAX和其他Web技術傾向于使用JSON。YAML目前更多地用于離線數據處理。例如,它默認包含在基于C的OpenCV計算機視覺包中,而JSON則不包括在內。

您將找到JSON和YAML的C庫。YAML的圖書館往往更新,但我過去沒有遇到任何問題。參見例如Yaml-cpp。


查看完整回答
反對 回復 2019-08-23
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

繞過深奧的理論

這回答了標題,而不是詳細信息,因為大多數人只是像谷歌一樣從google搜索結果中讀取標題,所以我覺得有必要從Web開發人員的角度進行解釋。

  1. YAML使用空格縮進,這是Python開發人員熟悉的領域。

  2. JavaScript開發人員喜歡JSON,因為它是JavaScript的一個子集,可以直接在JavaScript中解釋和編寫,同時使用簡寫方式聲明JSON,在使用沒有空格的典型變量名時,不需要鍵中的雙引號。

  3. 有很多解析器在YAML和JSON的所有語言中都能很好地工作。

  4. 在許多情況下,YAML的空白格式可以更容易查看,因為格式化需要更人性化的方法。

  5. 如果您的編輯器中沒有空格可見或縮進線指示符,那么YAML的空白雖然更緊湊,更容易查看,但可能難以手動編輯。

  6. JSON的序列化和反序列化要快得多,因為要檢查的功能明顯少于YAML,這使得更小更輕的代碼能夠處理JSON。

  7. 一個常見的誤解是YAML需要較少的標點符號并且比JSON更緊湊,但這完全是錯誤的??崭袷遣豢梢姷?,所以看起來字符較少,但是如果你計算實際的空格是必要的,以便正確解釋YAML以及正確的縮進,你會發現YAML實際上需要比JSON更多的字符。JSON不使用空格來表示層次結構或分組,并且可以通過刪除不必要的空格來輕松展平,以實現更緊湊的傳輸。

房間里的大象:互聯網本身

JavaScript如此明顯地占據了網絡的巨大優勢,而JavaScript開發人員更喜歡將JSON作為數據格式與流行的Web API一起使用,因此在進行一般意義上的Web編程時,很難使用YAML而不是JSON,因為您可能會被淘汰在團隊環境中。實際上,大多數Web程序員甚至都不知道YAML存在,更不用說考慮使用它了。

如果您正在進行任何Web編程,JSON是默認的方法,因為在使用JavaScript時不需要轉換步驟,因此在這種情況下您必須提出更好的參數來使用YAML而不是JSON。


查看完整回答
反對 回復 2019-08-23
  • 3 回答
  • 0 關注
  • 5208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號