• 获取json对象的长度


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

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

  • 相关阅读:
    散户如何战胜专业投资机构
    机器学习总结
    进程线程及堆栈关系的总结
    线程堆栈是如何增长的
    Ubuntu下CodeBlocks控制台程序中文显示乱码解决问题
    jdk 安装
    python文件运行报错:Error: Please select a valid Python interpreter
    python 解释器安装
    allure在pycharm下运行出现以下乱码的提示 解决方案
    pytest 测试环境框架搭建
  • 原文地址:https://www.cnblogs.com/baolevel/p/8168617.html
Copyright © 2020-2023  润新知