JSON对象

1. JSON:JavaScript Object Notation

  • JSON 是轻量级的数据交换格式 (纯文本)
  • JSON 比 XML 更小、更快,更易解析
  • JSON语法

JSON语法是JS对象表示语法的子集,有如下特点:

  • 数据在键值对中(键名即属性名必须加双引号)
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组
    JSON 可通过 JavaScript 进行解析
    JSON 值可以是:数字、字符串、逻辑值、数组(在中括号中)、
    对象(在大括号中)、null

注意JSON不能存储Date对象,如果需要则用字符串表示

json对象示例

var jsonObj = {
"name":"wust",//注:js对象的key值一般不用双引号引着
"url":"www.wust.edu.cn",
"age":120
};

访问:与js对象访问相同

jsonObj.url 或 jsonObj["url"] // "www.wust.edu.cn"
jsonObj.url = "…" //修改

json对象遍历

//json对象遍历(注:x是key值)
for( var x in jsonObj ) {
document.write( x+":" + jsonObj[x] + "<br>" )
}

在这里插入图片描述
json嵌套示例

var jsonObj = {
"name": "datacode",
"code": {
"cs": 100,
"se": 101,
"ne": 102
}
};

访问:

jsonObj.code.cs 或 jsonObj.code["cs"] //100
jsonObj.code.cs="1000" //修改

遍历嵌套:

for(var key in jsonObj.code) {
document.write( jsonObj.code[key] +"<br>")
}

在这里插入图片描述
json值为数组示例

var jsonObj = {
"name": "网站",
"num": 3,
"sites": ["Google", "Sina", "Taobao"]
};

访问:

jsonObj.sites[0] // "Google" 
jsonObj.sites[0] ="Wust" //修改

遍历数组:

for( var i=0; i < jsonObj.sites.length; i++ )
document.write( jsonObj.sites[i] +"<br>")

在这里插入图片描述

数组元素是json对象

var jsonObj = {
"sites": [ { "name": "wust", "url": "www.wust.edu.cn" },
{ "name": "google", "url": "www.google.com" },
{ "name": "weibo", "url": "www.weibo.com" } ]
};

访问:

jsonObj.sites[0].url // "www.wust.edu.cn"
jsonObj.sites[0].url="…" //修改

遍历数组元素:

for ( var i=0; i < jsonObj.sites.length; i++ )
document.write( jsonObj.sites[i].url )

在这里插入图片描述
练习题:如何遍历info值

myjsonObj = {
"name": "网站",
"num": 3,
"sites": [ { "name": "Google", "info": ["Android", "Google搜索", "Google翻译"] },
{ "name": "Tencent", "info": ["QQ", "微信", "网游"] },
{ "name": "Taobao", "info": ["淘宝", "天猫"] }
]
};
for ( var i = 0; i < myjsonObj.sites.length; i++ )
for( var j = 0; j < myjsonObj.sites[i].info.length; j++ ) {
document.write( myjsonObj.sites[i].name + ":" )
document.write( myjsonObj.sites[i].info[j] + "<br>");
}

在这里插入图片描述

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值