欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js操作json数据的一些感受 博客分类: 随笔 jsonjavascript 

程序员文章站 2024-03-02 18:10:16
...

      最近在搞 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。
相关标签: json javascript