JavaScript入门学习笔记(JSON)

JSON是JavaScript Object Notation的简称,是一种轻量级的数据交换格式。

JSON使用JS的语法,但其格式只是一个文本,可以被任何编程语言读取病作为数据格式传递。

JSON以JS中对象的形式存储数据,允许数据结构、字符串、数字、boolean和对象的任意组合。

1 {"employees":[ 
//对象employees中有三个员工记录,以数组的形式存储
2 {"firstName":"John", "lastName":"Doe"}, 3 {"firstName":"Anna", "lastName":"Smith"}, 4 {"firstName":"Peter", "lastName":"Jones"} 5 ]}

JSON语法规则:

(1)数据为 键/值 对的形式

(2)数据由逗号分隔

(3)大括号保存对象

(4)方括号保存数组

数据(一个名称对应一个值):键/值 对包括字段名称,用双引号包起来,后面一个冒号,然后是值,ex:"firstName":"John"

对象:保存在大括号中,对象内部也可以保存多个 键/值 对。

ex:{"firstName":"John", "lastName":"Doe"}

数组:保存在中括号内,数组中也可以包含对象,

ex:"employees":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]

JSON字符串转化为JS对象:

通常我们从服务器中读取JSON数据并在网页上显示。简单起见,在网页中设置JSON字符串。

(1)创建JavaScript字符串,字符串为JSON格式的数据。

1 var text = '{ "employees" : [' + 
2 //将各个部分用单引号包起来变成字符串,用+号进行字符串连接
3 '{ "firstName":"John" , "lastName":"Doe" },' + 
4 '{ "firstName":"Anna" , "lastName":"Smith" },' + 
5 '{ "firstName":"Peter" , "lastName":"Jones" } ]}';

(2)使用JS的内置函数JSON.parse( )将字符串转化为JS对象:

var obj = JSON.parse(text);

(3)最后在页面中使用新的JS对象:

1 <p id="demo"></p>
2 
3 <script>
4 document.getElementById("demo").innerHTML = obj.employees[1].firstname + " " + obj.employees[1].lastname;
5 //访问对象obj中employees中第二个元素对象的firstname和lastname属性值
//employees在创建时是一数组的形式创建的,所以employees[1]表示取数组中的第二个值
6 </script>

 获取JSON属性值:

 1 var myStorage = {
 2 "car": {
 3 "inside": {
 4 "glove box": "maps",
 5 "passenger seat": "crumbs"
 6  },
 7 "outside": {
 8 "trunk": "jack"
 9 }
10 }
11 };
12 
13 
14 var gloveBoxContents = myStorage.car.inside["glove box"];
15 //对于单词的可以用点操作直接获取,遇到多个单词和空格组合的属性名使用方括号

 JSON集合操作:

 1 var collection = {
 2 2548: {
 3 album: "Slippery When Wet",
 4 artist: "Bon Jovi",
 5 tracks: [ 
 6 "Let It Rock", 
 7 "You Give Love a Bad Name" 
 8 ]
 9 },
10 2468: {
11 album: "1999",
12 artist: "Prince",
13 tracks: [ 
14 "1999", 
15 "Little Red Corvette" 
16 ]
17 },
18 1245: {
19 artist: "Robert Palmer",
20 tracks: [ ]
21 },
22 5439: {
23 album: "ABBA Gold"
24 }
25 };
26 
27 var collectionCopy = JSON.parse(JSON.stringify(collection));
28 
29 
30 function update(id, prop, value) {
31 
32 if (value !== '' && prop != 'tracks') {
33     collectionCopy[id][prop] = value;
34 } else if(value !== '' && prop == 'tracks'){
35     collectionCopy[id][prop].push(value);
36 } else {
37     delete collectionCopy[id][prop];
38 }
39 
40 return collection;
41 }
42 
43 
44 update(5439, "artist", "ABBA");
demo

 

转载于:https://www.cnblogs.com/edward-life/p/10719693.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值