我喜歡json作爲我寫的軟件配置文件的格式。我喜歡它輕巧,簡單並得到廣泛支持。不過,我發現我在json中真的很喜歡它沒有的東西。JSON替代品(用於指定配置)?
Json沒有多行字符串或這裏是文檔(http://en.wikipedia.org/wiki/Here_document),當你希望你的json文件是人類可讀和可編輯的時候,這往往是非常尷尬的。你可以使用字符串數組,但這是一個可行的解決方法。
Json不允許評論。
如果你看看unix配置文件的格式,你會看到很多人設計自己的尷尬格式,使用某種通用的東西真的更有意義。例如,這裏是從Apache的配置文件中的一些代碼:
RewriteEngine on
RewriteBase /temp
RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml
RewriteCond %{HTTP_ACCEPT} !application/xhtml\+xml\s*;\s*q=0
RewriteCond %{REQUEST_URI} \.html
RewriteCond %{THE_REQUEST} HTTP/1\.1
RewriteRule t\.html t.xhtml [T=application/xhtml+xml]
從本質上講,這是怎麼回事的是,他們已經發明瞭寫一個布爾函數f的一個極其痛苦的方式(W,X,Y,Z) = w &!x & y & z。你想要一個邏輯「或」?他們也有一些單獨的(醜陋的)機制。
這似乎指向的是某種數據描述語言,它簡單且圖靈不完整,但比json更具表現力,靈活性和方便性。有人知道這樣的語言嗎?根據我的口味,XML過於複雜,而且lisp表達式具有錯誤的特性(圖靈完備性)並且缺乏正確的特性(這裏是文檔,表達式語法)。
[編輯]標題有誤導性。我對json的下一次迭代並不感興趣。我對javascript的子集不感興趣。我對其他數據描述語言感興趣。
[YAML](http://en.wikipedia.org/wiki/YAML)? – BalusC 2012-01-11 03:23:16
@BalusC:有趣的建議:-)但YAML似乎沒有提供任何布爾函數/ Apache示例或類似風格的應用程序的好方法。 – 2012-01-11 03:52:31