js操作json数据的一些感受

      最近在搞 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。

转载于:https://www.cnblogs.com/chenzhengjun/archive/2011/08/21/2148747.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462513.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SVN1.6.5详细配置

提示大家:sc cretate命令后面带的参数比如[binPath ]的等号后面必须有个空格,没空格你怎么折腾都不行的,哈哈。微软还真搞笑啊,搞这么个功能迷惑人。同样,后面的其它参数比如group , displayname的等号后面都需要空格&…

ASP.NET 4.0升级至ASP.NET 4.5需要注意的地方

原文 http://www.cnblogs.com/dudu/archive/2013/05/20/3087791.html 原以为只要在Visual Studio 2012中将每个项目的Target framework设置为.NET Framewor 4.5进行编译,然后在web.config中设置compilation的targetFramework为4.5,就升级到了ASP.NET 4.5…

获取自动增涨列的表中添加完成后的数据

当我们向有自动增涨列的表中添加完数据后,想得到刚刚生成的自动增涨列的值,有两种方法:第一种方法:\cmd.CommandText “insert into class(cName,cDescription) output inserted.Id values(‘高三一班’,‘描述’)”;第二种方法在sql语句后加上; select identity:转载于:https:…

Linux关闭防火墙详述

1) 重启后永久性生效: 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后失效: 开启: service iptables start 关闭: service iptables stop 需要说…

DOM剪切板

我们常用到剪切板,在网页操作中,如,csdn 的网站,会有一个复制按钮,点击后,会在复制的内容下有一行内容,提示复制的内容来自csdn,并且下面会带有相关的连接。 在网页中有个对象clipboardData&…

学会自行车喽!

DD终于能骑着二轮自行车在院子里灵活地转圈了,我们迫不及待地把车骑到了森林里去。她在前面骑,我在后面跟着跑,可算好好锻炼了,回来腿都软了。这可是德国最热的天哪,最近雨多,天晴起来森林里闷热一片。转载…

#include 中的stat.h文件到底在哪个目录下面?

try "/usr/include/sys/satt.h", good luck! 网址:http://topic.csdn.net/u/20080919/23/98f5efe1-6613-4734-ba04-4ffd79d5ac3a.html

POJ3274Gold Balanced Lineup(哈希)

Gold Balanced LineupTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 10360 Accepted: 3086Description Farmer Johns N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been able to narrow down the list of features shared by his cows …

把一个数据库的数据插入到另外一个数据库

insert into t1 select * from shujuku1.dbo.t2; 原网址:http://topic.csdn.net/u/20080312/10/5c5ac5a3-32db-4693-ac70-99d8c62694d8.html

ubuntu 下mysql的常用命令

MySQL数据库的基本操作命令 一、mysql服务操作 0、查看数据库版本 sql-> status;1、net start mysql //启动mysql服务 2、net stop mysql //停止mysql服务  3、mysql -h主机地址 -u用户名 -p用户密码 //进入mysql数据库 4、quit //退出mysql操作 5、mysqladmin…

编写类-餐馆类

# Author Eric Zhao # -*- coding:utf-8 -*-class Restaurant(): """ 餐馆类 """ def __init__(self,restaurant_name,cuisine_type): """ 始化属性 restaurant,cuisine_type """ self.resta…

Dalvik虚拟机简要介绍和学习计划

出自:http://blog.csdn.net/luoshengyang/article/details/8852432 我们知道,Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。除了指令集和类文件格式不同,Dalvik虚拟机与Java虚…

chrome扩展之3:一步步跟我学开发一个表单填写扩展

这节课实现的效果如下图所示: 我们先想一想,怎么样才可以在搜索框上输入内容呢,当然可以手动输入^_^,除了这个之外呢?如果您有这个页面的后台编辑权限就可以直接修改这个页面的内容。当然,这个页面是google的,我们没有…

硬盘快速格式化和格式化的区别

5楼的搞不懂不要瞎答啊,你说的Low level是低级格式化,High level是高级格式化,你讲的是这两者的区别,不要瞎copy,paste。人家问的是快速格式化和普通格式化。这两种都是高级格式化即High level Format,两者的区别在于快速格式化仅…

Oracle Class4. 数据库对象(同义词,序列,视图,索引,簇)

------------------------2013-5-9------------------------索引的建立情况:经常用于查询,排序和分组的列(即经常在where,order或group by子句中出现的列) 主键索引和复合索引。 desc student;create index i_stu_name on student…

PHPCMS V9爆出多个SQL注入漏洞

phpcms 使用sys_auth函数加解密cookie信息,系统中多个文件直接从cookie中获取变量进入程序流程。 由于sys_auth函数在设计和使用过程中存在缺陷,导致注册用户可以伪造cookie数据,触发SQL注入等多个二次攻击。 看sys_auth函数代码 //libs/functions/globa…

sql 中N'的作用

加上 N 代表存入数据库时以 Unicode 格式存储。Nstring 表示string是个Unicode字符串Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如&am…

主流虚拟化产品对比列表01

虚拟化概述厂商MicrosoftVmwareCitrix产品Hyper-V 2012vSphere 5.1XenServer 6.1版本数据中心版企业增强版白金版评估概述Windows Server 2012System Center 2012 (数据中心版)vSphere 5.1XenServer 6.1成熟度/ 产品上市时间WS2012-2012.9 SC2012sp1-201…

[其它] - 为什么中国的程序员技术偏低

来源:http://www.cnbeta.com/articles/155374.htm 作者:飘飘渺渺首先来说一个高级程序员并非靠自己读几本书写几万行代码就能练就的,我更关注于低层的环境,也就是程序员实实在在的工作环境。因为程序员的高低还得从实际的工作来衡量&#xff…

SQL PROCEDURE和 FUNCTION的区别

FUNCTION 默认是有一个返回值(只有一个,当然可以不返回),PROCEDURE通过传入out 参数来传递需要返回的数值,可以多个FUNCTION 可在select语句里直接调用(如果FUNCTION 里update,insert,delete 则不行&#x…