JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

比较标准的写法:

  1. var json = '{"a":"1", "b":"2"}';
  2. var data = eval('('+ json +')');
  3. alert(data.a);
  4. alert(data['a']);

这样两种方式都可以取到json中的值。

但是当key的值为数字时,只能使用类似数组下表的访问方式取值。

  1. var json = '{"0":"a", "1":"b", "length":2}';
  2. var data = eval('(' + json + ')');
  3. //alert(data.0);    //报错,此方式不可用
  4. alert(data['0']);
  5. alert(data[0]);    //注意此写法与数组用下标访问是相同的
  6. alert(data.length)  //貌似数组的长度

1.使用json时,通常都使用第一种方式,且key一般应使用合法的变量名(字母或下划线开头的包括字母、下划线和数字的字符串)

2.对象的两种访问方式:data.key和data[’key’]各自有自己的应用场景,一般情况使用data.key即可,也比较直观(它符合其它高级语言中访问对象中属性的方式);

当key为一个变量时,并且使用在循环中,用data['key']这种方式。

  1. for(var i=0; i < 10; i++) {
  2. s += data['key' + i];  //循环调用,可简化代码
  3. }

3.第三种采用数字做key的方式,虽然不推荐,但也是有其应用价值的;

如当建立一个与数据库中id一一对应的map对象的时候,

可直接用id的数值做key,虽然你可以给它加上一个字母前缀来让它符合合法的变量名的标准,

并让它的数据能通过data.key的方式访问,

但如果数据量非常大的话,

为每个id都加一个前缀,+字符连接运算也是要消耗性能的,

特别是在很少需要采用data.key方式去访问属性的情况下,

那么可以抛弃此调用方式,直接用数字做key也未尝不可,

除了key名称不符合合法变量名的标准之外,似乎并没有其它损失;

最新文章

  1. .NET应用架构设计—面向查询的领域驱动设计实践(调整传统三层架构,外加维护型的业务开关)
  2. (视频) 《快速创建网站》 2.3 WordPress初始化和功能简介
  3. 《C和指针(Pointer on c)》 学习笔记(转自:http://dsqiu.iteye.com/blog/1687944)
  4. EventBus (三) 源码解析 带你深入理解EventBus
  5. &lt;新手必读&gt;Eclipse中,Add Jars与Add Library的区别
  6. 函数buf_page_init_for_read
  7. 【HDOJ】4363 Draw and paint
  8. Linux下实现流水灯等功能的LED驱动代码及测试实例
  9. scrapy, 自带命令行调用工具.
  10. 《Windows编程循序渐进》——建立MFC应用程序
  11. ubuntu vi编辑insert时上下左右建为ABCD
  12. UNIX环境高级编程——创建与打开IPC通道
  13. 【我们一起写框架】领域驱动设计的CodeFirst框架(一)—序篇
  14. C - Heavy Transportation &amp;&amp; B - Frogger(迪杰斯变形)
  15. ES6 Class语法学习
  16. 浏览器中打开PDF链接
  17. Spring @Value取值为null或@Autowired注入失败
  18. node基础—global对象(全局对象)
  19. pycharm git无法使用问题(待解决)
  20. canvas 写一个刮刮乐抽奖

热门文章

  1. (转)CSS布局-负边距-margin
  2. 6410在rvds下编译启动代码报错分析
  3. 201671010140. 2016-2017-2 《Java程序设计》java学习第一周
  4. Gym-101128D:Dice Cup
  5. 刷题向》关于搜索+tarjan的奇怪组合题 BZOJ1194 (normal+)
  6. 【CF#338D】GCD Table
  7. spring框架 事务 xml配置方式
  8. Hadoop 使用Combiner提高Map/Reduce程序效率
  9. Servlet和JSP简述
  10. Win10 linux子系统Ubuntu下显示图形界面