標籤:

如何看待json語法中不能加註釋的設計?

由於json中不能使用注釋,使其不適合做配置文件,這算是Douglas老爺子的設計失誤么?

JSON「最後不能加逗號」是不是錯誤設計?www.zhihu.com圖標


是故意的:https://plus.google.com/+DouglasCrockfordEsq/posts/RK8qyGVaGSr

I removed comments from JSON because I saw people were using them to hold parsing directives, a practice which would have destroyed interoperability. I know that the lack of comments makes some people sad, but it shouldn"t.

Suppose you are using JSON to keep configuration files, which you would like to annotate. Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser.


如果你非要在 JSON 裡面加上欄位注釋,可以用

"_comment": "comment text goes here...",

欄位來表示,並沒有特效,只是一個約定。javascript - Can I use comments inside a JSON file?


JSON 是一種數據格式,它是不支持注釋的(樓上幾位也都貼出了原因)。但是諸如 json5 等插件可以讓 JSON 來支持注釋,當然也有其他技巧(比如 JSON.minify,{"comment":"foobar"})來讓JSON間接支持注釋。

po 一段代碼:jsonminify的方法

題外話

配置文件現在一般都不用 json 語法了,配置文件不太適合用 json( json 的雙引號設計也是挺反人類的),換成了 js 語法。你看現在 webpack 的打包工具的配置文件也都不用JSON,都用 *.js。


也是剛剛想到,就網上搜了搜看看,現在看來除非配置都是通過其他格式的文件轉換過來的例如excel轉josn,否則完全沒有辦法做為配置文件用。很多遊戲開發相關的還用json格式做配置文件。。。


但其實有些不嚴格的JSON解析器還是支持注釋的


Can comments be used in JSON?

https://plus.google.com/+DouglasCrockfordEsq/posts/RK8qyGVaGSr

https://plus.google.com/photos/113528648038757901362/album/6338199245401191953/6338199245542618754?authkey=COPwoZeAnZWpXw


推薦閱讀:

JS中{}+[]和[]+{}的返回值情況是怎樣的?
用d3.js或jfreechart在web上做圖表,哪個比較好,他們的區別在哪,哪個國內用的比較多?
前端如何處理動態url?
亞馬遜是如何反爬蟲的?
Python 爬蟲如何獲取 JS 生成的 URL 和網頁內容?

TAG:JavaScript |