jquery检查json var是否存在

时间:2011-05-24 03:51:40

标签: javascript jquery json push

如何使用jquery检查getJSON后生成的json中是否存在键/值?

function myPush(){
    $.getJSON("client.php?action=listen",function(d){
        d.chat_msg = d.chat_msg.replace(/\\\"/g, "\"");
        $('#display').prepend(d.chat_msg+'<br />');
        if(d.failed != 'true'){ myPush(); }
    });
}

基本上我需要一种方法来查看d.failed是否存在,如果它='true'则不要继续循环推送。

3 个答案:

答案 0 :(得分:11)

你不需要jQuery,只需JavaScript。您可以通过以下几种方式实现:

  • typeof d.failed - 返回类型('undefined','Number'等)
  • d.hasOwnProperty('failed') - 以防它继承
  • 'failed' in d - 检查是否已设置(即使未定义)

您还可以检查d.failed:if (d.failed),但如果d.failed未定义,null,false或零,则返回false。为了简单起见,为什么不if (d.failed === 'true')?为什么检查它是否存在?如果是真的,只需返回或设置某种布尔值。

参考:

http://www.nczonline.net/blog/2010/07/27/determining-if-an-object-property-exists/

答案 1 :(得分:1)

昨天发现了这个。 CSS喜欢JSON的选择器

http://jsonselect.org/

答案 2 :(得分:0)

您可以使用javascript惯用法来表示if语句:

if (d.failed) {
    // code in here will execute if not undefined or null
}

这很简单。在你的情况下应该是:

if (d.failed && d.failed != 'true') {
    myPush();
}

具有讽刺意味的是,这可以读出“如果d.failed存在并且设置为'true'”,正如OP在问题中写的那样。