在我们日常前端开发中,经常会用到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();

好了,就是这样,希望对前端开发者有一点帮助。