2015-05-11 30 views
0

我需要檢查元素是否在json數據中。我如何測試元素是否在json數據中

JSON數據

{ 
    "status": { 
     "carts": [ 
      { 
       "service": "page-mailer", 
       "running": "", 
       "last success": "2015-05-07 09:35:31" 
      } 
     ], 
     "pages": [ 
      { 
       "service": "page-mailer", 
       "running": "", 
       "last success": "2015-05-07 09:35:31" 
      } 
     ], 
     "actions": [ 
      { 
       "service": "page-mailer", 
       "running": "", 
       "last success": "2015-05-07 09:35:31" 
      } 
     ], 
     "integrations": [], 
     "service": [ 
      { 
       "service": "page-mailer", 
       "running": "", 
       "last success": "2015-05-07 09:35:31" 
      } 
     ], 
     "smtp": [ 
      { 
       "Server": "myserver" 
      } 
     ], 
     "servers": [] 
    }, 
    "timing": "2ms" 
} 

喜歡的東西,

if(carts){} 
if(pages){} etc 

我使用jQuery的getJSON();

+2

式兩份http://stackoverflow.com/questions/4295386/how-can-i-check-if-a-value工作-is-a-json-object – ferr

+0

'if(data && data.status && data.status.carts)' –

+0

還有什麼可以的?這也可以工作:'if(typeof data =='object'){}' –

回答

2

下面應該爲你

if(data && data.status && data.status.carts){ 
    console.log("Exist") 
} 
+0

他使用'$ .getJSON',所以他不需要調用'JSON.parse()',它已經被解析了。 – Barmar

+0

嗯,你是對的。 – RE350

1

如果您有:

var data = {"status": { "carts": ....... } } 

然後檢查carts存在這樣寫:

if(data && data.status && data.status.carts) { 
    //do something 
} 
+0

謝謝,我相信我的問題沒有涵蓋找出在購物車中是否有記錄的部分。我想執行if(data.status && data.status.carts){}只有當它不是空的。這種情況會對此起作用嗎? – Shaonline

+0

是的,它會 - 這就是它檢查。 – PeterKA

+0

您需要使用'if(data && data.status && data.status.carts && data.status.carts.length)'來檢查。但是如果'data.status.carts'總是被定義的(甚至是空的),你可以檢查'if(data.status.carts.length)' –

相關問題