我能否在以下发言中发表一些意见?Json Json (Json Json) (Json Json Json) (Json Json) Json Json (Json Json) Json (Json) Json (Json) Json (Json) Json (Json) Json (Json) Json (Json) Json(Json) Json (Json) Json (Json) Json(Json) Json (Json) Json如果有,如何处理?


当前回答

我刚刚发现"- - - - - - - -".

“JSON的简短评论,它允许你在JSON的文件中使用评论!”

{
    // Rainbows
    "unicorn": /* ❤ */ "cake"
}

其他回答

考虑使用雅姆勒它几乎是JSON的超集(几乎所有有效的JSON都是有效的YAML),它允许评论。

正如许多答复已经指出的,JSON在本地没有评论。当然,有时你还是想要评论。Python 符号,两个方法commentjson (#//仅用于 Python 2 的)或json_tricks (#//Python 2 和 Python 3 的 Python 2 和 Python 3, 具有其他几个特点。json_tricks.

我在目前项目中遇到这个问题,因为我有相当一部分JSON, 需要一些评论才能让事情容易记住。

我用这个简单的 Python 函数替换备注( U)json.loads转换成dict:

import json, re

def parse_json(data_string):
  result = []
  for line in data_string.split("\n"):
    line = line.strip()
    if len(line) < 1 or line[0:2] == "//":
      continue
    if line[-1] not in "\,\"\'":
      line = re.sub("\/\/.*?$", "", line)
    result.append(line)
  return json.loads("\n".join(result))

print(parse_json("""
{
  // This is a comment
  "name": "value" // so is this
  // "name": "value"
  // the above line gets removed
}
"""))

包含备注, 如果您选择的话; 在解析或传输前用一个分解符将其删除 。

我刚放出来JSON. 最小化 ()将评论和空格从JSON的一块块中除去,使JSON能够被解析,成为有效的JSON。

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

当我发布时,我得到了一股巨大的反感, 许多人甚至不同意这个想法, 所以我决定写一篇全面的博客文章, 说明为什么JSON认为,它包括JSON创始人的这一引人瞩目的评论:

假设您正在使用 JSON 保存配置文件, 您想要对此进行注释 。 请继续插入您想要的所有评论 。 然后通过 JSMIN 管道将其传送给您的 JSON 分析者 。 - 将它交给您 JSON 分析者 。Douglas Crockford,2012年

希望这样能帮助那些不同意为什么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风格的评论: / *, #, / /。 字符串的字句保留不变 。