• 转 谈谈JS里的{ }大括号和[ ]中括号的用法,理解后就可以看懂JSON结构了。


    
    

    一、{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。

    如:var LangShen = {"Name":"Langshen","AGE":"28"};

    上面声明了一个名为“LangShen”的对象,多个属性或函数用,(逗号)隔开,因为是对象的属性,

    所以访问时,应该用.(点)来层层访问:LangShen.Name、LangShen.AGE,当然我们也可以用数组的方式来访问,如:LangShen["Name"]、LangShen["AGE"],结果是一样的。

    该写法,在JSON数据结构中经常用,除此之外,我们平时写函数组的时候,也经常用到,如:

    var LangShen = {
          Name = function(){
                     return "LangShen";
                      },

         Age = function(){
                    return "28";
                    }

    }

    调用方式差不多,因为是函数组,所以要加上(),如:alert( LangShen.Name() );

     

    二、[ ]中括号,表示一个数组,也可以理解为一个数组对象。

    如:var LangShen = [ "Name","LangShen","AGE","28" ];

    很明显,每个值或函数,都是独立的,多个值之间只用,(逗号)隔开,因为是数组对象,所以它等于:

    var LangShen = Array( "Name","LangShen","AGE","28" );

    访问时,也是和数组一样,alert( LangShen[0] );

    三、{ } 和[ ] 一起使用,我们前面说到,{ } 是一个对象,[ ] 是一个数组,我们可以组成一个对象数组,如:

    var LangShen = { "Name":"Langshen",
                              "MyWife":[ "LuLu","26" ],
                              "MySon":[{"Name":"Son1"},{"Name":"Son2"},{"Name":"Son3"}] 
    }

    从上面的结构来看,是一个对象里面的第一项是个属性,第二项是一个数组,第三个是包含有多个对象的数组。调用起来,也是一层一层访问,对象的属性用.(点)叠加,数组用 [下标] 来访问。

    如:alert( LangShen.MySon[1].Name ) ;

    例子1:

    var geoCoordMap = {
    '海门':[121.15,31.89],
    '鄂尔多斯':[109.781327,39.608266],
    '招远':[120.38,37.35],
    '舟山':[122.207216,29.985295],
    '大庆':[125.03,46.58]
    };

    例子2

    var data = [
    {name: '海门', value: 9},
    {name: '鄂尔多斯', value: 12},
    {name: '招远', value: 12},
    {name: '舟山', value: 12},
    {name: '大庆', value: 279}
    ];

    使用

    var convertData = function (data) {
      var res = [];
      for (var i = 0; i < data.length; i++) {
      var geoCoord = geoCoordMap[data[i].name];
        if (geoCoord) {
          res.push({
            name: data[i].name,
            value: geoCoord.concat(data[i].value)
          });
        }

      }
      return res;
    };

  • 相关阅读:
    listview 加载性能优化 viewholder
    eclipse使用有感
    android常见的错误
    填充父窗体布局问题
    setTag()/getTag()
    自己动手实现自旋锁
    新手学信息检索6:谈谈二值独立模型
    自己动手编译、运行Java程序
    新手学信息检索5:正确率召回率与搜索引擎的评价
    新手学信息检索4:向量空间模型与相似度计算
  • 原文地址:https://www.cnblogs.com/michellexiaoqi/p/7232141.html
Copyright © 2020-2023  润新知