// 一个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 。上面的代码如果有错误或者有更好的方法获取,希望您能在留言区留言不吝赐教。