【问题标题】:What is the JSON indentation level convention? [closed]什么是 JSON 缩进级别约定? [关闭]
【发布时间】:2013-09-09 12:55:32
【问题描述】:

是否存在诸如 JSON 缩进级别的“标准”约定之类的东西?应该是 2 个空格、3 个空格、4 个空格、制表符分隔还是其他?

我试图遇到the official JSON site,但那里没有说明。

【问题讨论】:

  • 没有这样的约定。通常,JSON 以最小的形式发送(如字符的最小空间)。
  • @jenson-button-event 人太多了,很遗憾:(
  • 从您链接到的页面:“可以在任何一对标记之间插入空格。” 所以不,没有这样的约定。
  • @Alnitak 不幸的是,我是其中之一。 :( 我为我的配置文件手工制作它。所以,这不是正确的吗?
  • 给出了奇怪的接近原因 - 这是事实的问题,而不是意见不存在缩进标准。

标签: javascript json


【解决方案1】:

JSON 是一种序列化 格式,而不是一种演示文稿 格式。

因此,没有“标准”缩进 - JSON 通常以尽可能紧凑的方式发送。

(也就是说,JSON.stringify() 可以选择请求“漂亮打印”的 JSON - 查看 MDN documentation 处的 space 参数)

【讨论】:

  • 我明白了。但是如果我使用 JSON 作为配置格式(例如在配置文件中)怎么办?我应该为此目的使用我的“自己的”标准缩进还是已经存在任何“通用”标准?
  • 没有通用标准,只要使用看起来适合您要求的任何标准 - JSON 解析器将忽略额外的空白。
【解决方案2】:

没有标准。 JSON specification 允许任意数量的空格。

但是,当您打印 JSON 以使其可读时(例如在配置文件中),最好与项目的编码约定保持一致并使用与 JS 对象字面量相同的缩进级别- 通常是 4 个 (Crockford) 或 2 个空格 (Node.js)。

【讨论】:

  • 不要将 Crockford 的编码指南与 Crockfords 格式指南混为一谈。前者是好的,后者是,嗯,一个教条和他的个人喜好。
  • @Alnitak:当然,但是 4 个空格对于 JS 代码来说是相当标准的;我很少看到 8 或 2 个空格或用于缩进的制表符。 Crockford 只是我找到的第一个链接……正在编辑。
  • 制表符大小可以主观指定,用于缩进,因此比大多数空格约定使用更少的字节。
  • @CeesTimmerman 是的。然后你陷入了一场噩梦,你的 SCM 产生了一大堆变化,人们浪费了他们生命中的几个小时将空间更改为选项卡,反之亦然。许多/大多数 IDE 默认用空格替换制表符是有充分理由的!老实说,没有人关心他们的 json 文件在 git repo 中占用的字节数。当有人出现并搞砸格式时,他们确实很在意。
  • @PhilipCouling 忽略空格变化。
猜你喜欢
  • 1970-01-01
  • 2021-09-30
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 2013-01-30
  • 1970-01-01
  • 2011-02-03
  • 1970-01-01
相关资源
最近更新 更多