我可以在json文件里使用注释吗? 如果是的话,怎么写?


当前回答

Dojo工具包 javascript工具包(至少是1.4版) 允许您在 Json 中加入评论。 评论可以是 / * * / 格式。 Dojo 工具包通过 dojo. xhrget () 电话消耗json 。

其它标本工具箱也可以类似地使用。

在选择最后选择之前先试验其他数据结构(甚至数据清单)时,这样做会有帮助。

其他回答

在json中需要评论,并且至少可在.net核心json 和 tonosojson 中提供评论。

{
  // this is a comment for those who is ok with being different
  "regular-json": "stuff"...
}

json不支持本地的评论, 但您可以自己做解码器或至少预处理器来删除评论, 这完全没问题(只要您只是忽略评论, 不使用它们来指导您的应用程序如何处理json数据 ) 。

json 没有评论。 json 编码器不能输出评论。 json 编码器可以接受和忽略评论。

评论不应被用来传递任何有意义的信息。 这就是json的目的。

参考:杜格拉斯·克罗福德,Json Spec的作者。

将json 项切为部分,我加上了“微调评论”行:

{

"#############################" : "Part1",

"data1"             : "value1",
"data2"             : "value2",

"#############################" : "Part2",

"data4"             : "value3",
"data3"             : "value4"

}

注释中包括您选择的注释;在解析或传输之前用一个分解符将其删除。

i 刚刚发布json.minify () , 它将评论和空白从json区块中分离出来, 并使它成为有效的json, 可以进行剖析。 所以, 您可以使用它 :

JSON.parse(JSON.minify(my_str));

所以我决定写一篇全面的博客文章, 说明为什么评论在json中有意义。

假设您正在使用 json 来保存配置文件, 您想要对这些文件进行注释。 请继续插入您想要的所有评论。 然后通过 jsmin 进行管道, 然后将它交给您的 Jsson 采集器 。 - Douglas crockford, 2012 。

希望这对不同意Json. minify()的原因的人会有帮助。

是的,你可以,但你的分析可能会失败(没有标准)。

要进行剖析,您应该删除这些注释,或者通过手写,或者使用正则表达式:

它替换任何评论,例如:

/****
 * Hey
 */

/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/

它替换任何评论,例如:

// Hey

/\/\/.*/

你可以做这样的事情:

jsonString = jsonString.replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/, "").replace(/\/\/.*/,"")
var object = JSON.parse(jsonString);