JSON未进行验证。

27 浏览
0 Comments

JSON未进行验证。

这个问题已经有了答案:

是否允许JSON中存在多行字符串?

我正在尝试验证以下JSON对象

[{"post_content":"

"}, {"post_content":"

"}]

它失败了。我已经把它变成了单行,像下面这样

[{"post_content":"

"}, {"post_content":"

"}]

现在它工作了。我有更多的对象不能像这样反复编辑。有没有什么解决方法?

admin 更改状态以发布 2023年5月20日
0
0 Comments

问题字符可以转义或删除:

var json = `[{"post_content":"
"}, {"post_content":"
"}]` console.log( JSON.parse( json.replace(/\n/g, '\\n') ) )

0
0 Comments

根据RFC-4627

这些是六个结构字符:

  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
        )

案例1中,

旁边有一个空格,因此json无效。

案例2中,同样的空格消失了,因此您拥有一个有效的json。

0