您的位置:首页 > Web前端 > JavaScript

js操作json数据的一些感受

2011-08-21 23:37 375 查看
最近在搞 json 数据传输,直接用的 javascript 对数据进行操作。json数据为:

var json ={ "global":"200", "camera":[{"key2":"F5.6","key3":"35mm" }], "jam":[ {"Red":"100"}, {"Yellow":"300"}, {"Green":"500"}] };

现在我想要的效果是 根据“global”、“camera”、“jam”这些 key 值来遍历里面的内容,而且这些 key 事先是不定的,根据传递过来的参数确定 key 值。
js 函数为 :

funciton test(id)
{
// id 为传进来的key值

  for(var item in json[id])
{
for(var key in json[id][item])
{
alert("key="+ item +"value="+ json[id][item][key] );
}
}
}


   这样就可以得到最外层 key 值为 id 的object中的 key 值和对应的 value 了。

起初看 json 取数据时,看似很简单,只要知道key值便可以,比如 json.global、json.camera.key2、json.jam.Red ,但这些是通过“.”这个操作符实现的,必须确定key 值,而且这个 key 值无法通过变量来改变(或许可以,但是我还不知道)。
其实后来我发现,用“.” 这个操作符操作,是把数据当做是一个 object 来操作了,而如果通过“[]”来操作,便把数据当做是list,所以每个“{ }”便是一个元素。
global的第一个元素 json["global"][0]为“200”,再用[]取值得到“2”、“0”、“0”;
json["camera"][0]为{"key2":F5.6,"key3":35mm},取到的值分别为json["camera"][0]["key2"]=F5.6和json["camera"][0]["key3"]=35mm;
而jam取到的为 json["jam"][0]["Red"]=100, json["jam"][1]["Yellow"]=300, json["jam"][2]["Green"]=500。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: