javascript解析JSON字符串在AJAX工作流中抛出异常

标签 javascript

我有一个 Ajax 工作流程,我在其中读取长度为 10,000 - 50,000 的 JSON 字符串。现在我用于将 JSON 解析为 javascript 对象的函数抛出异常并且无法执行该语句。

是否对可以解析的json字符串有某种限制,或者可以执行eval?

我试过了

  1. > YUI JSON实用程序来解析和
  2. 还尝试了 eval() 和
  3. 还有 new Function("return"+ jsonString + ";")()。

但是没有运气? 谁能帮我解决这个问题或提出建议。

最佳答案

想法

听起来您的 JSON 格式不正确。没有看到 JSON,很难诊断,但这些是我最常看到的错误:

  1. 没有单个顶级对象(这里最常见的错误是顶级数组,它是无效的)
  2. 不正确的引号(所有字符串,包括键,必须使用双引号,而不是单引号)
  3. 职能
  4. 未定义
  5. 悬挂逗号(我很惊讶 http://json.org 并没有说它们有效,实际上,这是 Crockford 认为需要在 Javascript 中修复的问题之一——而且他并不孤单)
  6. 不匹配的引号

...尽管上面的 2-4 实际上可以与您尝试评估 JSON 的第二种和第三种方法一起使用,因为 evalnew Function 都是接受完整的 Javascropt 对象文字表示法,它具有更多引用选项并允许顶级数组、函数和 undefined

“没有单个顶级对象”示例

{"name": "Fred"},
{"name": "Barney"}

像 XML 一样,JSON 需要一个“根”,必须是:

{"entries": [
        {"name": "Fred"},
        {"name": "Barney"}
    ]
}

悬挂逗号示例

{
    "one": 1,
    "two", 2,
}

{
    "myArray": [1, 2, 3, 4, ]
}

不匹配的引用示例

{"key": "value'}

关于javascript解析JSON字符串在AJAX工作流中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2912087/

相关文章:

Javascript:自调用单例函数与创建函数实例?

javascript - 由于 CSS 标签,Google map 无法正确加载

javascript - SMTP 服务器给出错误。 Meteor App 中邮件未发送

javascript - React Native -cameraRoll.saveToCameraRoll 没有保存我的视频

javascript - unpoly加载的fragments中的脚本不执行

javascript - 出于某种原因,我的 .click 方法不适用于 <div id=menuButton>。为什么?

javascript - 从 JS 文件中获取 Vue

javascript - 使用 jquery 预览 html 文档

javascript - 什么是 JavaScript 中的 __proto__ 类型代理?

javascript - 我如何通过 ssl、https Node.js 连接?