JSON中的空白字符是无关紧要的吗?

use*_*949 53 json

在json字符串中是否忽略空格,制表符和回车符等空白字符?

例如,{"a":"b"}等于{"a" : "b"}

Gre*_*ill 64

是的,语法中会忽略双引号字符串文字之外的空格.具体来说,RFC 4627wsJSON语法的生成显示:

Insignificant whitespace is allowed before or after any of the six
structural characters.

   ws = *(
             %x20 /              ; Space
             %x09 /              ; Horizontal tab
             %x0A /              ; Line feed or New line
             %x0D                ; Carriage return
         )
Run Code Online (Sandbox Code Playgroud)

  • *=零或更多(来自正则表达式表示法) (2认同)

Tim*_*man 5

如前所述,在标准JSON中,字符串文字之外的空格将被忽略。

但是,由于您的问题被标记为C#,所以我应该注意,在C#/。NET中至少还有一种情况,JSON中的空白确实很重要。

DataContractJsonSerializer使用一种特殊的__type属性,以支持反序列化到正确的子类。此属性必须是对象中的第一个属性,并且属性名称和前一个之间没有空格{。请参阅此先前的线程: DataContractJsonSerializer不适用于格式化的JSON吗?

至少,我已经测试了.NET 4的无空白要求是否正确。也许在将来的版本中会对此进行更改,使其更符合JSON标准?