资讯专栏INFORMATION COLUMN

JSON的基本操作,重点访问对象值点号(.)来访问对象的值和中括号([ ])的区别

Edison / 349人阅读

摘要:访问对象值你可以使用点号来访问对象的值实例你也可以使用中括号来访问对象的值实例从功能上说,这两种方法没有任何区别。还有如果属性名中包含会导致语法错误的字符,或者属性名是关键字或者保留字,也是使用方括号表示法。

访问对象值

1、你可以使用点号(.)来访问对象的值:
实例

  var myObj, x; 
  myObj = { "name":"runoob", "alexa":10000, "site":null }; 
  x = myObj.name;

2、你也可以使用中括号([ ])来访问对象的值:
实例

var myObj, x; 
myObj = { "name":"runoob", "alexa":10000, "site":null }; 
x = myObj["name"];

3、从功能上说,这两种方法没有任何区别。但方括号语法有一个优点:可以通过变量来访问属性,如:

var propertyName = "name";
alert(person[propertyName]);  //gogo

json 在进行通过键名来获取值时,需要特别注意一下。
把键名赋值给另外一个变量,然后通过.方式去获取值。这种方式是行不通的。

var myObj, x;
myObj = { "name":"runoob", "alexa":10000, "site":null };
x = "name";
document.getElementById("demo").innerHTML = myObj.x;  // 结果是 undefined

只能通过 [] 方式去访问:

var myObj, x;
myObj = { "name":"runoob", "alexa":10000, "site":null };
x = "name";
document.getElementById("demo").innerHTML = myObj[x];  // 结果是 runoob

还有在使用for遍历时,只能通过 myObj[x] 来获取相应属性的值,而不能使用 myObj.x

总结,键名为变量时只能用 []来获取相应属性值。
还有!如果属性名中包含会导致语法错误的字符,或者属性名是关键字或者保留字,也是使用方括号表示法。如:

 var response = {
         "awards":{"105":50, "107":10,"108":5,"110":3,"111":2, "112":1}
        };
console.log(response.awards["105"])  //50
console.log(response.awards.105)  //报错

循环对象

1、你可以使用 for-in 来循环对象的属性:key
实例

var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) { document.getElementById("demo").innerHTML += x + "
"; }

2、**在 for-in 循环对象的属性时,使用中括号([])来访问属性的值:value
在使用for遍历时,只能通过 myObj[x] 来获取相应属性的值,而不能使用 myObj.x**

实例

var myObj = { "name":"runoob", "alexa":10000, "site":null }; 
for (x in myObj) { document.getElementById("demo").innerHTML += myObj[x] + "
"; }

嵌套 JSON 对象 value 可以是合法的 JSON 数据类型

1、JSON 对象中可以包含另外一个 JSON 对象:

实例

myObj = { "name":"runoob", "alexa":10000, 
    "sites": { 
    "site1":"www.runoob.com", 
    "site2":"m.runoob.com"
    } 
}

2、你可以使用点号(.)或者中括号([])来访问嵌套的 JSON 对象。

实例

x = myObj.sites.site1; // 或者 x = myObj.sites["site1"];

修改值

1、你可以使用点号(.)来修改 JSON 对象的值:

实例

myObj.sites.site1 = "www.google.com";

2、你可以使用中括号([])来修改 JSON 对象的值:

实例

myObj.sites["site1"] = "www.google.com";

删除对象属性

1、我们可以使用 delete 关键字来删除 JSON 对象的属性:

实例

delete myObj.sites.site1;

2、你可以使用中括号([])来删除 JSON 对象的属性:

实例

delete myObj.sites["site1"]



文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100643.html

相关文章

  • Javascript数组索引不完全解析

    摘要:数组的大小是不固定的,可以像这样随意添加。再看一张图,这次多添加几个元素,再给数组添加一个属性注意看右侧对象的元素索引不知道你有没有发现。数组范围和索引转换那里是参考的,其他地方都是自己的理解和看法。 从题目说起,之所以是不完全,是因为有些东西比如数组的方法怎么用这个我都不打算讲,因为那个看一下都会,下面讲的都是我觉得重要的,只关于数组对象本身。另外,由于我的Javascript实战经...

    levius 评论0 收藏0
  • js常见基础对象属性方法 (二)

    摘要:常见基础对象属性方法二关于的箭头函数的返回对象的问题箭头函数具有隐式返回的特性。返回值函数累计处理的结果。语句将某个对象添加的作用域链的顶部,如果在中又某个未使用命名空间的变量,跟作用域链中的某个属性同名,则这个变量将指向这个属性值。 js常见基础对象属性方法 (二) 关于es6的箭头函数的返回对象的问题 箭头函数(=>)具有隐式返回的特性。如果某个函数体只有单个表达式,你就可以忽略r...

    Donald 评论0 收藏0
  • 初入ES6-Symbol

    摘要:原始的数据类型和一样是第七种数据类型创建只能用函数来创建,而且不能用可以有参数,用来区分每个只能显试的转化此处是字符串不能在转为数字报错不能隐式的转化报错作为对象的的属性名称主要用在可计算的属性名称,即使带有中括号的属性名称一般是私有不可以 Symbol原始的数据类型和string, boolean,null,undefined,number一样,是JS第七种数据类型 //创建Symb...

    ivyzhang 评论0 收藏0
  • JS对象理解

    摘要:所以对象也可说是一组名字属性的组合。如果想要访问,就用专用的方法,包含两个参数对象名称,属性名称,返回一个对象包含具体的特性。 基于《javascript 面向对象精要》整理下思路: ECMA5 对象的定义是无序属性的集合,属性可以是基本值,对象(包含函数),属性都有一个名字,名字可以是标识符或者是字符串,映射到属性。所以对象也可说是一组名字/属性的组合。有两种方式创建对象:构造函数,...

    tylin 评论0 收藏0
  • JSON数据格式使用

    摘要:数据格式是一种轻量级的数据交换格式。为了对名为的对象进行转换,只需执行相同形式的命令这就是与本系列讨论的其他数据格式之间最大的差异。不过,我们读起来费解的语言,恰恰是适合机器阅读,所以通过的索引就能够读取黑龙江这个值。 JSON 数据格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使...

    番茄西红柿 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<