【问题标题】:Javascript output (Script Editor (MacOSX)) is without quotation marks [duplicate]Javascript输出(脚本编辑器(MacOSX))没有引号[重复]
【发布时间】:2016-12-21 16:45:38
【问题描述】:

下面的代码(js):

JSON = {"name":"John","stats":["canFly","invincible","noClip","canBuild"]};


function disableGodStats(JSON){ 

    for (i = 0; i < JSON.stats.length; i++) {
        if (JSON.stats[i] == "canFly" || JSON.stats[i] == "invincible" || JSON.stats[i] == "noClip" || JSON.stats[i] == "allowCommands") {
            JSON.stats.splice(i, 1);
            i--;
        }
    }

    return JSON;
}


disableGodStats(JSON);

上面的代码sn-p我用于一个小网游的小玩家数据库。

在脚本编辑器(用于测试)中运行时,它会生成不带引号的输出,这很奇怪,因为 JSON 代码现在无法验证需要这些的严格 JSON。

编辑: 示例输出 - 注意缺少引号:

{name:John, stats:[canBuild]}

【问题讨论】:

  • 这个脚本编辑器是什么?
  • 嗯,JSON 包含一个 JavaScript 对象,而不是 JSON。如果要生成JSON,需要使用JSON.stringify
  • 没有引号会怎样?数组statsname 的内容?输出是什么?
  • 老问题,我知道;并且 not 与建议的帖子重复。 “脚本编辑器” 是一个 Mac 实用程序。它是用 AppleScript 和 JavaScript 编写代码的基本 IDE。 “类似的问题”是关于 JQuery 的,它 not 在这里适用。 (偶然发现这个寻找相关信息。)

标签: javascript json quotation-marks


【解决方案1】:

您正在覆盖一个名为 JSON 的对象,请尝试使用不同的变量名。

编辑: 这是正确的答案。更改变量名称可修复结果。新代码:

var JSON_item = {"name":"John","stats":["canFly","invincible","noClip","canBuild"]};


function disableGodStats(JSON){ 

    for (i = 0; i < JSON_item.stats.length; i++) {
        if (JSON_item.stats[i] == "canFly" || JSON_item.stats[i] == "invincible" || JSON_item.stats[i] == "noClip" || JSON_item.stats[i] == "allowCommands") {
            JSON_item.stats.splice(i, 1);
            i--;
        }
    }

    return JSON_item;
}


disableGodStats(JSON_item);

结果,带有适当的引用:

{"name":"John", "stats":["canBuild"]}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-10
    • 2023-01-30
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多