首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE中的合法JSON提供错误:预期标识符、字符串或数字

IE中的合法JSON提供错误:预期标识符、字符串或数字
EN

Stack Overflow用户
提问于 2011-03-11 10:52:04
回答 1查看 4.7K关注 0票数 0

我有一个奇怪的IE错误,我在google上唯一能找到的就是,当你在字典或数组中有一个后缀逗号时,这个错误就会出现。但根据JSONLint的说法,我的JSON是非常出色的,所以我感到非常沮丧。JSON在这里列出。我的问题是。有没有人经历过这个错误,而不是","-related?任何帮助或指导都会得到极大的认可。

顺便说一下,错误出现在我尝试过的任何JSON解码器中,但我想使用的是mootools JSON.decode

代码语言:javascript
复制
{
    "spine": [
        "title.xml",
        "about.xml",
        "main0.xml",
        "main1.xml",
        "main2.xml",
        "main3.xml",
        "main4.xml",
        "main5.xml",
        "main6.xml",
        "main7.xml",
        "main8.xml",
        "main9.xml",
        "main10.xml",
        "main11.xml",
        "similar.xml",
        "feedbooks.xml"
    ],
    "chapters": {
        "main9.xml": "TEST",
        "similar.xml": "TEST",
        "title.xml": "TEST",
        "main10.xml": "TEST",
        "feedbooks.xml": "TEST",
        "about.xml": "TEST",
        "main0.xml": "TEST",
        "main5.xml": "TEST",
        "main4.xml": "TEST",
        "main8.xml": "TEST",
        "main6.xml": "TEST",
        "main11.xml": "TEST",
        "main3.xml": "TEST",
        "main1.xml": "TEST",
        "main7.xml": "TEST",
        "main2.xml": "TEST"
    },
    "manifest": {
        "ncx": {
            "href": "fb.ncx",
            "media-type": "application/x-dtbncx+xml"
        },
        "titlepage": {
            "href": "title.xml",
            "media-type": "application/xhtml+xml"
        },
        "logo-feedbooks": {
            "href": "images/logo-feedbooks.png",
            "media-type": "image/png"
        },
        "logo-feedbooks-tiny": {
            "href": "images/logo-feedbooks-tiny.png",
            "media-type": "image/png"
        },
        "about-css": {
            "href": "css/about.css",
            "media-type": "text/css"
        },
        "feedbooks": {
            "href": "feedbooks.xml",
            "media-type": "application/xhtml+xml"
        },
        "main8": {
            "href": "main8.xml",
            "media-type": "application/xhtml+xml"
        },
        "main9": {
            "href": "main9.xml",
            "media-type": "application/xhtml+xml"
        },
        "main0": {
            "href": "main0.xml",
            "media-type": "application/xhtml+xml"
        },
        "main1": {
            "href": "main1.xml",
            "media-type": "application/xhtml+xml"
        },
        "main2": {
            "href": "main2.xml",
            "media-type": "application/xhtml+xml"
        },
        "main3": {
            "href": "main3.xml",
            "media-type": "application/xhtml+xml"
        },
        "main4": {
            "href": "main4.xml",
            "media-type": "application/xhtml+xml"
        },
        "main5": {
            "href": "main5.xml",
            "media-type": "application/xhtml+xml"
        },
        "main6": {
            "href": "main6.xml",
            "media-type": "application/xhtml+xml"
        },
        "main7": {
            "href": "main7.xml",
            "media-type": "application/xhtml+xml"
        },
        "main10": {
            "href": "main10.xml",
            "media-type": "application/xhtml+xml"
        },
        "main11": {
            "href": "main11.xml",
            "media-type": "application/xhtml+xml"
        },
        "newspaper-css": {
            "href": "css/newspaper.css",
            "media-type": "text/css"
        },
        "page-css": {
            "href": "css/page.css",
            "media-type": "text/css"
        },
        "about": {
            "href": "about.xml",
            "media-type": "application/xhtml+xml"
        },
        "main-css": {
            "href": "css/main.css",
            "media-type": "text/css"
        },
        "titlepage-css": {
            "href": "css/title.css",
            "media-type": "text/css"
        },
        "feedbooks-css": {
            "href": "css/feedbooks.css",
            "media-type": "text/css"
        },
        "similar": {
            "href": "similar.xml",
            "media-type": "application/xhtml+xml"
        }
    },
    "spinereal": [
        "title.xml",
        "about.xml",
        "main0.xml",
        "main1.xml",
        "main2.xml",
        "main3.xml",
        "main4.xml",
        "main5.xml",
        "main6.xml",
        "main7.xml",
        "main8.xml",
        "main9.xml",
        "main10.xml",
        "main11.xml",
        "similar.xml",
        "feedbooks.xml"
    ],
    "contents": [
        {
            "src": "title.xml",
            "id": "level1-titlepage",
            "title": "Title"
        },
        {
            "src": "about.xml",
            "id": "level1-about",
            "title": "About"
        },
        {
            "src": "main0.xml",
            "id": "chap578",
            "title": "Chapter 1"
        },
        {
            "src": "main1.xml",
            "id": "chap580",
            "title": "Chapter 2"
        },
        {
            "src": "main2.xml",
            "id": "chap582",
            "title": "Chapter 3"
        },
        {
            "src": "main3.xml",
            "id": "chap584",
            "title": "Chapter 4"
        },
        {
            "src": "main4.xml",
            "id": "chap586",
            "title": "Chapter 5"
        },
        {
            "src": "main5.xml",
            "id": "chap588",
            "title": "Chapter 6"
        },
        {
            "src": "main6.xml",
            "id": "chap590",
            "title": "Chapter 7"
        },
        {
            "src": "main7.xml",
            "id": "chap592",
            "title": "Chapter 8"
        },
        {
            "src": "main8.xml",
            "id": "chap594",
            "title": "Chapter 9"
        },
        {
            "src": "main9.xml",
            "id": "chap596",
            "title": "Chapter 10"
        },
        {
            "src": "main10.xml",
            "id": "chap598",
            "title": "Chapter 11"
        },
        {
            "src": "main11.xml",
            "id": "chap600",
            "title": "Chapter 12"
        },
        {
            "src": "similar.xml",
            "id": "level1-similar",
            "title": "Recommendations"
        }
    ],
    "metadata": {
        "publisher": "TEST",
        "rights": "TEST",
        "description": "TEST",
        "language": "TEST",
        "creator": "TEST",
        "title": "TEST",
        "source": "TEST",
        "coverage": "",
        "date": "TEST",
        "identifier": "TEST",
        "subject": "TEST"
    }
}

更新

伙计们..。我已经解决了我的问题。我得到json的方式来自Django,我假设我可以简单地获取我的字典的simplejson.dump,然后在这样的模板中使用它:

代码语言:javascript
复制
var opf = {{ var }}

这在webkit和mozilla浏览器中运行得很好,但是IE在这条线上的神秘错误让IE窒息了。所以..。我试过的是

代码语言:javascript
复制
var opf = JSON.decode({{var}});

代码语言:javascript
复制
var opf = JSON.decode("{{var}}");

这产生了完全相同的错误,但是现在这个错误发生在mootools的某个地方。我什么都试过了。/因此,我最终所做的是创建一个Request.JSON,这样我就不会将变量传递给模板。现在,IE突然发挥得很好:/我觉得这是个小问题,但到底是怎么回事。谢谢你的快速回复伙计们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-11 11:00:11

最新答案

我认为这一定是页面其他地方的错误。Dimitar在下面指出,您标记了您的问题mootools,因此可能正在使用JSON.decode,但效果很好:

代码语言:javascript
复制
var obj, json;
json = '...your JSON...';
obj = JSON.decode(json);

实例化

交替:如果引用的内容实际上出现在JavaScript代码中(没有包含在字符串中,没有通过XHR或其他方式从服务器加载),那么您引用的是一个JavaScript对象文本,而不是JSON,您根本不解析它。简化示例:

JavaScript对象文本:

代码语言:javascript
复制
var obj = {
    foo: "bar"
};

属性名称周围的引号在对象文本中是可选的(在JSON中不是这样,在JSON中它们是必需的),所以这也很好:

代码语言:javascript
复制
var obj = {
    "foo": "bar"
};

杰森:

代码语言:javascript
复制
var json = '{' +
           '   "foo": "bar"' +
           '}';
var obj = JSON.decode(json);

原始答案:(错过了mootools标签)

它可以很好地工作在json2.js上,甚至返回到IE6上:

代码语言:javascript
复制
var obj, json;
json = '...your JSON...';
obj = JSON.parse(json); // where `json` is a string containing your JSON

实例化

听起来像是如何解析它的问题,或者代码中其他地方的问题。

如果您使用的是原始eval,请确保将JSON包装在括号中:

代码语言:javascript
复制
var obj, json;
json = '...your JSON...';
obj = eval('(' + json + ')');

实例化

...but我不建议使用eval来解析JSON (甚至不建议使用json2,它在幕后使用eval ),除非您确定了源(例如,您自己的服务器)。我可能会使用来自Crockford的github页面的一个非Crockford的github页面解析器。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5271982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档