代表{"某些":"东西\ n"} - json对象变成一个被视为有效json的unicode?

时间:2018-05-04 06:50:51

标签: json yajl

根据JSON RFC:  JSON文本是一系列标记。这组令牌包括六个    结构字符,字符串,数字和三个文字名称。

JSON文本是序列化对象或数组。

  JSON-text = object / array

这是六个结构特征:

  begin-array     = ws %x5B ws  ; [ left square bracket

  begin-object    = ws %x7B ws  ; { left curly bracket

  end-array       = ws %x5D ws  ; ] right square bracket

  end-object      = ws %x7D ws  ; } right curly bracket

  name-separator  = ws %x3A ws  ; : colon

  value-separator = ws %x2C ws  ; , comma

在六个中的任何一个之前或之后允许无关紧要的空白    结构特征。

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

所以我可以代表' {'和'}'作为unicode字符? 如果我将JSON对象 - {"某些":" thing \ n"}转换为unicode,则表示为: \ u007B \ u0022 \ u0073 \ u006F \ u006D \ u0065 \ u0022 \ u003A \ u0022 \ u0074 \ u0068 \ u0069 \ u006E \ u0067 \ u006E \ u0022 \ u007D 为什么YAJL解析器会给出错误呢? 如果我将输入修改为" \ u0022 \ u0000 \ u0000 \ u0000 \ u0022 \ u0062 \ u0000 \ u0069 \ u0069 \ u0069 \ u006 \ u006 \ u006 \ u006 \ u006 \ u006 \ u006 \ u006 \ u006 - 它可以解析它而没有任何错误。 有谁知道这背后的原因?

0 个答案:

没有答案