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

1. 对象名.属性名, 类似于高级语言的写法

var obj = '{"name":"wisdo", "age":"20"}';
var data = eval('('+ obj +')');
alert(obj.name);

2. 以数组索引的方式来访问

var obj = '{"name":"wisdo", "age":"20"}';
var data = eval('('+ obj +')');
alert(obj[0]); // 输出的是 name

3. 以字典索引的方式来访问

var obj = '{"name":"wisdo", "age":"20"}';
var data = eval('('+ obj +')');
alert(obj['name']); // 输出的是 name 值

 在通常的情况下,一般是使用第一种方法,即通过对象名.属性名 的方式来访问,这样对于使用高级语言的编程很直观,也很容易理解,但这也有局限性,属性的名称要规范,key 要以字母或下划线开头的包括字母、下划线和数字的字符串,不能以数字开头.

总结

  data.key和data[’key’]各自有自己的应用场景,一般情况使用data.key即可,也比较直观(它符合其它高级语言中访问对象中属性的方式);当key为一个变量时,并且使用在循环中,用data['key']这种方式。

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

  以数组索引的方式来访问,虽然不推荐,但也是有其应用价值的;如当建立一个与数据库中id一一对应的map对象的时候,可直接用id的数值做key,虽然你可以给它加上一个字母前缀来让它符合合法的变量名的标准并让它的数据能通过data.key的方式访问.

 

JSON 获取属性值的方法的更多相关文章

  1. 转:JSON 获取属性值的方法

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript(Standard ECMA-262 ...

  2. C# 反射(GetType) 获取动态Json对象属性值的方法

    之前在开发一个程序,希望能够通过属性名称读取出属性值,但是由于那时候不熟悉反射,所以并没有找到合适的方法,做了不少的重复性工作啊! 然后今天我再上网找了找,被我找到了,跟大家分享一下. 其实原理并不复 ...

  3. json获取属性值的方式

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript(Standard ECMA-262 ...

  4. json 获取属性值

    ajax后台获取json数据 前台赋值.由于值太多 一个个写 val会类似的.因为直接字段值和 前台的标签id相同,这样只要循环结果集json赋值即可. 这里需要用到json的字段值 var data ...

  5. jQuery获取属性值的方法

    1.利用绑定事件:     $(".callback").on("click","#knbh",function(){      ***** ...

  6. xml获取属性值的方法

    sSqlstr += string.Format(@" and businessattr.value('(/Arch/Field[@Name=""发文单位$$" ...

  7. C#通过属性名称获取(读取)属性值的方法

    之前在开发一个程序,希望能够通过属性名称读取出属性值,但是由于那时候不熟悉反射,所以并没有找到合适的方法,做了不少的重复性工作啊! 然后今天我再上网找了找,被我找到了,跟大家分享一下. 其实原理并不复 ...

  8. java 获取实体类对象属性值的方法

    在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...

  9. C#读取匿名对象的属性值的方法总结

    目录 1.通过反射的方式获取属性值 2.新建个扩展方法,将object转成对应的匿名对象 通过new出匿名对象,可以直接调用该匿名对象的属性名,获取属性值. var objUser = new {Na ...

随机推荐

  1. C++的深拷贝与浅拷贝

    对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量.下面是一个类对象拷贝的简单例子. #i ...

  2. Python 模块chardet安装 setup.py

    http://pypi.python.org/pypi/chardet#downloads 下载chardet-2.*.*.tar.gz:解压到site-package文件夹, Python及其一些模 ...

  3. dandelion datatables : Page index must not be less than zero!

    java.lang.IllegalArgumentException: Page index must not be less than zero! at org.springframework.da ...

  4. Ubuntu下配置Pyspider环境

    Ubuntu 14.04.4 LTS 1.ubuntu 系统自带Python 所以不用安装Python 注:安装前先更新下软件源 命令 :sudo apt-get update 2.开始安装pip 命 ...

  5. C#生成随机字符串(数字,字母,特殊符号)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. Linear Algebra lecture1 note

    Professor: Gilbert Strang Text: Introduction to Linear Algebra http://web.mit.edu/18.06   Lecture 1 ...

  7. Kindle DXG和Win10 64bits无法连接的问题

    直入主题:换根数据线. 不要觉得答案简单,我就是不负责任的在调侃. 在得出这条答案之前,我的思路是,既然插上线以后,kindle的充电指示灯会亮,那就应该不是线的问题. 所以实际的过程是我安装了驱动之 ...

  8. PHP中的运算符---算术运算符、逻辑运算符、赋值运算符、比较运算符

    1.算术运算符 常见的算术运算符 运算类型 运算符 举例 结果 取反运算 - -$a 返回$a的负值 加法运算 + $a + $b 返回$a与$b的和 减法运算 - $a - $b 返回$a与$b的差 ...

  9. hibernate查询语句hql中的占位符?参数与命名参数:name设值方式搞混

    先贴出异常 Struts has detected an unhandled exception: Messages: Position beyond number of declared ordin ...

  10. 如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:

    32位的Windows:---------------------------------------------------------------------------1. 运行->cmd ...