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

时间:2010-11-11 01:11:52

标签: json

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

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

2 个答案:

答案 0 :(得分:62)

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

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
         )

答案 1 :(得分:4)

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

但是,由于你的问题被标记为C#,我应该注意到在C#/ .NET中至少有一个其他案例,其中JSON中的空格确实很重要。

DataContractJsonSerializer使用特殊的__type属性来支持反序列化到正确的子类。此属性必须是对象中的第一个属性,并且在属性名称和前面的{之间没有空格。看到前一个帖子: DataContractJsonSerializer doesn't work with formatted JSON?

至少,我已经测试过,从.NET 4开始,无空白要求是正确的。也许这将在未来的版本中进行更改,以使其更符合JSON标准?