gpt4 book ai didi

javascript - JSON 文件错误

转载 作者:行者123 更新时间:2023-11-29 22:13:30 25 4
gpt4 key购买 nike

当我使用下面的代码时:

{
"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 的 JSON.parse JavaScript 实现而失败(您可以对其进行测试 here),也不会因浏览器的原生 JSON.parse 而失败

如果您阅读 the norm ,看来您的 JSON ,实际上是有效的:

These are the six structural characters:

  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

Insignificant whitespace is allowed before or after any of the six structural characters.

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

您拥有的空格是无用的,即使对于格式化也是如此,但它是合法的。您最好删除它,但您可能还应该按照规则调整您的解析器以使其更具容错性。

关于javascript - JSON 文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16730295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com