JavaScript如何检查json中是否缺少属性

时间:2015-06-09 14:41:39

标签: javascript json

我在找到检查解析的json对象中是否存在属性的方法时遇到了一些麻烦。 例如在我的js中我有这行代码:

jsonArray = JSON.parse(jsonResponse)

我想检查jsonArray对象中是否有属性media

例如,如果我的json看起来像这样:

Object0 {hashtags: Array[0], 
         symbols: Array[0],
         user_mentions: Array[1], 
         urls: Array[0]}
Object1 {hashtags: Array[1], 
        symbols: Array[0], 
        user_mentions: Array[0],
        urls: Array[1], 
        media: Array[1]}

我想检查Object0是否有财产media以及Object1是否有财产media

感谢' S

5 个答案:

答案 0 :(得分:5)

您可以使用hasOwnProperty

if (Object0.hasOwnProperty('media')) {
    // Object0.media
}

文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty

  

hasOwnProperty()方法返回一个布尔值,指示对象是否具有指定的属性。来自Object的每个对象都继承hasOwnProperty方法。此方法可用于确定对象是否具有指定的属性作为该对象的直接属性;与in运算符不同,此方法不会检查对象的原型链。

答案 1 :(得分:1)

使用typeof()

检查undefined是否if(typeof(Object0['media']) == 'undefined'){ }
{{1}}

答案 2 :(得分:0)

一旦您解析了JSON,它就会成为普通的JavaScript对象,您应该使用hasOwnProperty方法来检查该属性是否存在。

由于JSON对象不像其他JS对象那样具有属性或任何复杂的继承,因此存在的所有属性都是它们自己的,并且使用hasOwnProperty检查返回true:

var data = '...';
var obj = JSON.parse(data);
if (obj.hasOwnProperty('foo')) {
  ...
}

答案 3 :(得分:0)

如果您已经解析过它,它应该只是

jsonArray.media

jsonArray["media"]

致电该物业。如果您不需要获得房产,只需查看房产,即可:

jsonArray.media === 'undefined'

答案 4 :(得分:0)

if(object0['media'] !== undefined){
//media property present
}else{
//media property not present
}

对object1

执行相同操作