2015-05-11 28 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)' –

相关问题