我在找到检查解析的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
答案 0 :(得分:5)
您可以使用hasOwnProperty
:
if (Object0.hasOwnProperty('media')) {
// Object0.media
}
hasOwnProperty()方法返回一个布尔值,指示对象是否具有指定的属性。来自Object的每个对象都继承hasOwnProperty方法。此方法可用于确定对象是否具有指定的属性作为该对象的直接属性;与in运算符不同,此方法不会检查对象的原型链。
答案 1 :(得分: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
执行相同操作