2011-05-24 58 views
4

如何使用jquery檢查getJSON之後的結果json中是否存在鍵/值?jquery檢查是否存在json var

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,如果=「真」,則不要繼續循環推動。

回答

11

你不需要這個jQuery,只需JavaScript。你能做到幾個方面:

  • typeof d.failed - 返回類型(「未定義」,「數字」等)
  • d.hasOwnProperty('failed') - 以防萬一它繼承
  • 'failed' in d - 檢查,如果這是有史以來集(甚至爲undefined)

你也可以做一個檢查d.failed:if (d.failed),但這將返回false,如果d.failed未定義,空,假的或零。爲了保持簡單,爲什麼不做if (d.failed === 'true')?爲什麼要檢查它是否存在?如果它是真的,只需返回或設置某種布爾值。

參考:

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

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存在,並且設置爲‘真’」爲OP中的問題寫道。