在我们日常前端开发中,经常会用到ajax请求json数据,而json数据有数组和对象2种表示结构,对象和数组。而获取json数组结构的长度比较容易,但json对象结构的长度就比较麻烦。而本文就是对如何获取json对象的长度进行说明。
在说明如何获取json对象之前,我们需要了解下原生javaScript中的hasOwnProperty()方法,这个方法可以检测一个属性是存在于实例中,还是存在于原型中。只要给定属性存在于对象实例中,才会返回true。来看一个简单的例子。
// 原型模式创建对象
function Person(){}
Person.prototype.name = 'jack';
Person.prototype.age = 24;
Person.prototype.job = 'worker';
Person.prototype.fun = function(){
akert(this.name);
}
var person1 = new Person();
var person2 = new Person();
alert( perosn1.hasOwnProperty('name') );//false
person1.name = 'mark';
alert(person1.name); //mark
alert( person1.hasOwnProperty('name') );//true
在这个例子中,通过使用hasOwnProperty()方法,什么时候访问的是实例属性,什么时候访问的是原型属性就一清二楚了。好,可以进入正题了,先写一个
imgbox.json文件数据:
{
"imgBox": [
{"urlSmall":"images/small_1.jpg","urlBig":"images/big_1.jpg"},
{"urlSmall":"images/small_2.jpg","urlBig":"images/big_2.jpg"},
{"urlSmall":"images/small_3.jpg","urlBig":"images/big_3.jpg"},
{"urlSmall":"images/small_4.jpg","urlBig":"images/big_4.jpg"},
{"urlSmall":"images/small_5.jpg","urlBig":"images/big_5.jpg"}
]
}
javaScript部分:
function addPics(){
$.getJSON('/php/imgbox.json',function(jsonData){
console.log(jsonData.imgBox[0].urlSmall);
// 获取json对象长度的方法
function getJsonLength(data){
console.log(data);
var x ,i = 0;
for(var i in data.imgBox){
if(data.imgBox.hasOwnProperty(i)){
i++;
}
}
return i;
}
var count = getJsonLength(jsonData);
console.log(count);// 获取到的json对象长度为5
})
}
addPics();
好了,就是这样,希望对前端开发者有一点帮助。