JSON: JS解析外部JSON文件(我可以去掉引号吗?)

JSON: JS parsing external JSON file (Can I drop the quotation markers?)

本文关键字:JSON JS 文件 外部 我可以      更新时间:2023-09-26
{
    name: "Tesla",
    gender: "Male",
    info: {age: 88, interest: "Science"},
    x: 
    [
        {y: 1},{y: 2}
    ]
}
我使用

var jsonData = eval("("+xmlhttp.responseText+")");

,这可以解析JSON文件没有" "周围的属性。

但对于JSON.parse(xmlhttp.responseText)

{
    "name": "Tesla",
    "gender": "Male",
    "info": {"age": 88, "interest": "Science"},
    "x": 
    [
        {"y": 1},{"y": 2}
    ]
}

JSON属性必须被" "包围。有没有办法做到没有" " ?

不行,没办法。

如果属性周围没有引号,它不是有效的JSON。第一个例子是JavaScript对象文字

如果属性周围没有引号,JSON将不再有效。这样做只会给你带来麻烦。

JSON是一种数据格式,表示为JavaScript的子集

JSON规范要求将属性名表示为字符串(必须加引号)。JavaScript对象字面语法也提供了使用标识符的选项。

eval可以处理你的属性名作为标识符,因为这种语法在JavaScript中是允许的,eval计算代码作为JavaScript。另一方面,JSON.parse期望真正的JSON,这就是你必须给它的。

eval是邪恶的。看看这篇文章。但是,您正在使用JSON.parse,这需要更新版本的浏览器或json2.js脚本。

但是在我的偏好中,我喜欢使用jQuery如何使用new Function()将JSON反序列化为对象。考虑以下代码:

var jsonData = new Function('return ' + xmlhttp.responseText)();

无论有没有"都可以