2

首先,我所有的代码都是在 node.js 中完成的,但这也可以应用于 javascript。

这是我用来检查密钥是否存在的代码,问题是它总是返回 false。所以我在 console.log 中添加了显示值是什么:

if(!choice.name || !choice.realm || !choice.region || !choice.roll){
    console.log(choice);
    console.log(choice.name);
    console.log(choice.realm);
    console.log(choice.region);
    console.log(choice.roll);
    return false;
}

这是它的输出:

{"name":"Imacactus","realm":"Velen","region":"US","roll":"DPS"}
undefined
undefined
undefined
undefined

我猜它与引号有关?但我从来没有听说过报价搞砸了。这是 node.js 的问题吗?我也尝试过 .hasOwnProperty('realm') ,但仍然失败。

这是具有所有功能的大部分代码:http: //pastebin.com/DUN9VdHr

4

2 回答 2

7

您需要先将 json 解析为 javascript 对象,然后才能引用其属性。

您可以使用JSON.parse

var choiceobj = JSON.parse(choice);
if(!choiceobj.name || !choiceobj.realm || !choiceobj.region || !choiceobj.roll){

    console.log(choiceobj);
    console.log(choiceobj.name);
    console.log(choicepbj.realm);
    console.log(choiceobj.region);
    console.log(choiceobj.roll);
    return false;

}

于 2013-01-26T23:43:10.623 回答
-1

问题是引号是密钥的一部分,因此要访问它,您必须执行以下操作: console.log(choice['"name"']);

于 2013-01-26T23:44:54.740 回答