14

JSON 指定“可以在任何一对标记之间插入空格”。它没有具体说明什么是空白。我应该将其读作“老式 ASCII 空白”还是“Unicode 空白的整个范围”?

换句话说,在解析 JSON 时,U+2000、U+2001、U+FEFF 等令牌之间的空白字符是否有效?

4

1 回答 1

10

RFC4627 中为 JSON定义了无关紧要的空格:

在六个
结构字符中的任何一个之前或之后都允许有无关紧要的空格。

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

顺便说一句,默认编码是 UTF-8:

JSON 文本应以 Unicode 编码。默认编码为 UTF-8。

话虽如此,我不认为他们打算在原始实现中接受所有形式的Unicode 空间。

于 2013-04-16T16:31:36.147 回答