关闭

js通过变量获得json数据

标签: json变量获取JSON数据javascript
523人阅读 评论(0) 收藏 举报
分类:

// 一个JSON数组

{

 "s81664841290841200000":[

                   {"number":0,"maxnumber":2}

                             ],

 "s516652423491597000":[

                            {"number":1,"maxnumber":4}

                    ],

 "s97187674431254320000":[

                               {"number":2,"maxnumber":3}

                             ]

}

//取值一、

      s516652423491597000[0].number // 结果:1

      s516652423491597000[0].maxnumber    //结果:4

 

上面是JSON最常用的取值方法,现在做一个假设,如果上面的JSON我们用变量保存起来,格式如下:

var obj ={

 "s81664841290841200000":[

                    {"number":0,"maxnumber":2}

                             ],

 "s516652423491597000":[

                            {"number":1,"maxnumber":4}

                    ],

 "s97187674431254320000":[

                               {"number":2,"maxnumber":3}

                             ]

}

 

//取值二、

   obj.s516652423491597000[0].number // 结果:1

      obj.s516652423491597000[0].maxnumber    //结果:4

 

上面我们同样可以获取到数据。假设现在以s开头的key是自动生成的并且我们现在的key 我们需要使用变量去获取里面的值怎么获取了?在获取值需要先明白一个概念:

1、JSON是一个文本格式

2、 上面我们定义了一个obj的变量储存了JSON,是使用字面量表示法定义了一个对象,并赋值了一个属性,这个过程结果就跟SON没有任何关系了

// 取值三、

      var keys = "s516652423491597000";   //声明变量

      //错误使用变量用法

      obj.keys[0].number   //结果:undefined

      obj.keys[0].maxnumber      //结果:undefined

    上面的为什么错了?其实是我们定义的obj 内部并没有 keys这个属性,所以访问不到里面的任何数据,那如何将这个keys作为obj的键[key],并输出obj对象中的值呢?代码如下:

      //正确使用变量方法

      obj[keys][0].number //结果:1

      obj[keys][0].maxnumber    //结构4

 

取值三中我们使用了[ 变量 ]代替KEY 获取到了结果,此时如果是二级中的key也是需要使用变量来获取那有该怎么办了。

//取值四、

    var keys = "s516652423491597000";            //声明变量

      var keysTown ="number";      //二级key变量

      var keysTowm ="maxnumber"; //二级key变量

      obj[keys][0][keysTown]        //结果1

      obj[keys][0][keysTowm ] //结构:4

 

取值四中我们同样也是使用了[ 变量 ] 代替了二级的KEY 获取到了结果。使用这种方法就算是N级也可以也可以拿到内部的值诺。

 

总结:上面的问题也是我在使用json的时候出现了的,分享出来也许能帮助到让大家,也让大家少走弯路并且明白什么是JSON 。上面的代码如果有错误或者有更好的方法获取,希望您能在留言区留言不吝赐教。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:43355次
    • 积分:719
    • 等级:
    • 排名:千里之外
    • 原创:28篇
    • 转载:33篇
    • 译文:0篇
    • 评论:1条