JSON中的空白字符是否微不足道?
在jsonstring中空白字符像空格,制表符和回车被忽略?
例如,是{"a":"b"}
等于{"a" : "b"}
?
是的,在双引号string之外的空格在语法中被忽略。 具体来说, 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 )
在标准的JSON中,正如前面所说,string之外的空格被忽略。
然而,因为你的问题是C#标记的,所以我应该注意到在C#/。NET中至less有一个其他的情况,JSON中的空格是很重要的。
DataContractJsonSerializer
使用特殊的__type
属性来支持反序列化到正确的子类。 此属性必须是对象中的第一个属性,并且在属性名称和前面的{
之间没有空格。 看到这个前面的线程: DataContractJsonSerializer无法使用格式化的JSON?
至less,我已经testing了.NET 4中的无空白要求是正确的。也许这将在未来的版本中改变,以使其更符合JSON标准?