JSON规定“可以在任意两个标记之间插入空格”,但没有明确说明什么是空格。我应该理解为“传统ASCII空格”还是“Unicode全部范围内的空格”?
换句话说,解析JSON时,U+2000、U+2001、U+FEFF等字符是否是有效的标记之间的空格字符?
换句话说,解析JSON时,U+2000、U+2001、U+FEFF等字符是否是有效的标记之间的空格字符?
在JSON的RFC4627中定义了不重要的空格:
六个结构字符之前或之后允许有不重要的空格。
ws = *(
%x20 / ; Space
%x09 / ; Horizontal tab
%x0A / ; Line feed or New line
%x0D ; Carriage return
)
顺便提一下,默认编码是UTF-8:
JSON文本应该使用Unicode编码。默认编码是UTF-8。
话虽如此,我认为他们原始实现并不打算接受所有形式的Unicode空格。