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


当前回答

json对配置文件和其他本地使用非常有意义, 因为它无处不在, 因为它比xml简单得多。

如果人们有强烈的理由反对在传送数据时在json中发表评论(无论是否有效),那么json可能会被分成两个:

json-com: json on the winet, 或在传送json数据时适用的规则。 json- doc: json文件, 或文件或本地文件中的json。 定义有效的json文件的规则 。

json-doc将允许评论,而其他细小差异可能也存在,例如处理白色空间。 剖析器可以很容易地从一个形状转换成另一个形状。

Douglas Crockford就该问题发表的评论(由@artur czajka提及)

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

我们谈论的是通用配置文件问题(跨语言/平台), 他用js特定工具回答!

可以用任何语言来实施json特定的简化, 但将其标准化, 使得它变得无所不在, 在所有语言和平台的旁听者之间无处不在, 所以人们不再浪费时间来缺少这个功能, 因为他们有很好的使用案例, 在网上论坛里研究这个问题, 并让人们告诉他们这是一个坏主意, 或者说很容易执行删除文本文件的评论。

另一个问题是互操作性。 假设您有图书馆或 api 或任何子系统, 有与其相关的配置或数据文件 。 这个子系统将使用不同语言访问 。 那么您是否要告诉人们: 顺便说一句, 请不要忘记在将 Json 文档中的评论转至 Parser 之前, 请先从 Json 文件中删除这些评论 !

其他回答

还有其他与json兼容的图书馆,这些图书馆支持评论。

一个突出的例子就是“hashcorp语言”(hcl),它是由那些制造流浪者、包装者、领事和保险库的人共同写的。

至少这是我在Json. org的一眼 所经历的

json的语法在那一页上被视觉化了。

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

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

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

您可以通过正则表达式使用简单的预处理。例如,以下函数将在php中解码注释json:

function json_decode_commented ($data, $objectsAsArrays = false, $maxDepth = 512, $opts = 0) {
  $data = preg_replace('~
    (" (?:[^"\\\\] | \\\\\\\\ | \\\\")*+ ") | \# [^\v]*+ | // [^\v]*+ | /\* .*? \*/
  ~xs', '$1', $data);

  return json_decode($data, $objectsAsArrays, $maxDepth, $opts);
}

它支持所有php- type 注释 : / *, , , / / 。 字符串的字典被保存 。

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

{

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

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

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

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

}