【问题标题】:how can i test if elements are in json data我如何测试元素是否在 json 数据中
【发布时间】:2015-07-22 06:55:31
【问题描述】:

我需要检查一个元素是否在 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();

【问题讨论】:

标签: javascript jquery json


【解决方案1】:

下面应该适合你

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

【讨论】:

  • 他正在使用$.getJSON,所以他不需要调用JSON.parse(),它已经被解析了。
【解决方案2】:

如果你有:

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

然后检查carts 是否存在,您可以这样写:

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

【讨论】:

  • 谢谢,我相信我的问题没有涉及到找出购物车中是否有任何记录的部分。只有当它不为空时,我才想执行 if(data.status && data.status.carts){} 。这种情况会适用吗?
  • 是的,它会 - 这就是它检查的内容。
  • 您需要使用if(data && data.status && data.status.carts && data.status.carts.length)进行检查。但是如果data.status.carts 总是被定义(甚至是空的),你可以只检查if(data.status.carts.length)
猜你喜欢
  • 2021-03-04
  • 1970-01-01
  • 2013-11-11
  • 2011-12-04
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 2015-11-30
相关资源
最近更新 更多