json字符串中是否忽略空格,制表符和回车符等空白字符?
例如,{"a":"b"}
是否等于{"a" : "b"}
?
答案 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标准?