JSON文件错误

Error in JSON file

本文关键字:错误 文件 JSON      更新时间:2023-09-26

当我使用下面的代码:

{
   "info":[
      {
         "name": "Adam",
         "address": "Park Street"
      }
    ]
}

解析正确

,但添加进一步的代码,如:

{
   "info":[
      {
        "name": "Adam",
        "address": "Park Street1"
      },
      {     //<------ getting error here
        "name": "Bob",
        "address": "Park Street2"
      },
      {
        "name": "Clarin",
        "address": "Park Street3"
      }
    ]
}
解析错误

这个问题,我可以通过从头编写一个JSON字符串并在jslint.com中测试它来重现,与这个坏序列有关:

{
space
LF

错误的JSON字符串示例:

{ 
 "a":3
}

如果你删除空格,它可以工作。

所以你知道怎么修理它。

附加说明:

  • 在jslint.com的默认设置下Chrome和Firefox都失败
  • jslint.com接受JSON,如果你检查"凌乱的空白"
  • 其他在线解析器可能不那么严格
  • 它不会与Crockford的JavaScript实现JSON.parse失败(你可以在这里测试它),也不会与浏览器的本地JSON.parse失败

如果你阅读规范,似乎你的JSON ,事实上,有效的:

这是六个结构字符:

  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

允许在6个空格之前或之后使用无关紧要的空格结构特点。

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

空白是无用的,即使是格式化,但它是合法的。您最好删除它,但您可能还应该调整您的解析器,使其更具容忍度,这是规则。

查看jsonlint.com。你的JSON是完美的…你的编辑器可能有问题