1

本机 JSON.parse 在 FF 中的实现似乎很差(使用版本 13.0.1),我在 IE、Chrome 和 FF 中尝试了以下测试代码。前 2 个浏览器似乎正确地将 json 字符串解析为 Object 而 FF 没有。

var jsonObj = { 
        onetype: [
            {id:1,name:"First Name"},
            {id:2,name:"Second Name"}
        ]
};
var serializedJsonObj = JSON.parse(JSON.stringify(jsonObj));
serializedJsonObj.onetype[1].name;

我假设必须将“第二个名称”打印到输出,但不是这个 FF 只打印“未定义”,因为 obj.onetype 属性实际上是一个字符串,要将其解析为一个对象,我们必须再次调用 JSON.parse :

var jsonObj = { 
        onetype: [
            {id:1,name:"First Name"},
            {id:2,name:"Second Name"}
        ]
};
var serializedJsonObj = JSON.parse(JSON.stringify(jsonObj));
JSON.parse(serializedJsonObj.onetype)[1].name;

我错过了什么吗?

4

1 回答 1

0

它是包含在 lib.js 中的过时 Prototype.js 库(谁会这样做??)。在阅读了 2 条声称在我的案例中这种行为无效的评论后,我创建了一个测试页面,其中包含我遇到问题的真实案例来测试它,但它不再可重现。

于 2014-03-25T02:03:52.260 回答