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。

TA貢獻1876條經驗 獲得超7個贊
繞過深奧的理論
這回答了標題,而不是詳細信息,因為大多數人只是像谷歌一樣從google搜索結果中讀取標題,所以我覺得有必要從Web開發人員的角度進行解釋。
YAML使用空格縮進,這是Python開發人員熟悉的領域。
JavaScript開發人員喜歡JSON,因為它是JavaScript的一個子集,可以直接在JavaScript中解釋和編寫,同時使用簡寫方式聲明JSON,在使用沒有空格的典型變量名時,不需要鍵中的雙引號。
有很多解析器在YAML和JSON的所有語言中都能很好地工作。
在許多情況下,YAML的空白格式可以更容易查看,因為格式化需要更人性化的方法。
如果您的編輯器中沒有空格可見或縮進線指示符,那么YAML的空白雖然更緊湊,更容易查看,但可能難以手動編輯。
JSON的序列化和反序列化要快得多,因為要檢查的功能明顯少于YAML,這使得更小更輕的代碼能夠處理JSON。
一個常見的誤解是YAML需要較少的標點符號并且比JSON更緊湊,但這完全是錯誤的??崭袷遣豢梢姷?,所以看起來字符較少,但是如果你計算實際的空格是必要的,以便正確解釋YAML以及正確的縮進,你會發現YAML實際上需要比JSON更多的字符。JSON不使用空格來表示層次結構或分組,并且可以通過刪除不必要的空格來輕松展平,以實現更緊湊的傳輸。
房間里的大象:互聯網本身
JavaScript如此明顯地占據了網絡的巨大優勢,而JavaScript開發人員更喜歡將JSON作為數據格式與流行的Web API一起使用,因此在進行一般意義上的Web編程時,很難使用YAML而不是JSON,因為您可能會被淘汰在團隊環境中。實際上,大多數Web程序員甚至都不知道YAML存在,更不用說考慮使用它了。
如果您正在進行任何Web編程,JSON是默認的方法,因為在使用JavaScript時不需要轉換步驟,因此在這種情況下您必須提出更好的參數來使用YAML而不是JSON。
添加回答
舉報