一、什么是JSON
- JSON: JavaScript Object Notation(JavaScript 对象表示法)
- JSON 是存储和交换文本信息的语法。类似 XML。
- JSON 比 XML 更小、更快,更易解析。
看例子
{
"sites": [
{ "name":"菜鸟教程" , "url":"www.runoob.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
]
}
- JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是
- JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
- JSON 具有自我描述性,更易理解
二、JSON - 转换为 JavaScript 对象
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。
由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。
三、JSON 语法规则
JSON 语法是 JavaScript 对象表示语法的子集。
- 数据在名称/值对中
"name" : "neil"
- 数据由逗号分隔
- 大括号保存对象
- 中括号保存数组
四、JSON 值
1、数字(整数或浮点数):
{ "age":30 }
2、字符串(在双引号中)
3、逻辑值(true 或 false)
{ "flag":true }
4、数组(在中括号中)
{
"personObj":[
{"name":"neil","age":"19","gender":"male"},
{"name":"jason","age":"22","gender":"male"},
{"name":"susan","age":"20","gender":"famale"}
]
}
5、对象(在大括号中)
{
"name":"neil" ,
"url":"www.runoob.com"
}
6、null
{ "runoob":null
}
五、JSON 取值
var personObj = [
{ "name": "neil", "age": "19", "gender": "male" },
{ "name": "jason", "age": "22", "gender": "male" },
{ "name": "susan", "age": "20", "gender": "famale" }
];
var age = personObj[1].age;
var gender = personObj[2]["gender"];
六、JSON 赋值
var personObj = [
{ "name": "neil", "age": "19", "gender": "male" },
{ "name": "jason", "age": "22", "gender": "male" },
{ "name": "susan", "age": "20", "gender": "famale" }
];
var personName = personObj[0].name = "tessa";
var personAge = personObj[0][age] = "22";
七、JSON 循环对象
- 使用 for-in 来循环对象的属性:
var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += x + "<br>";
}
- 在 for-in 循环对象的属性时,使用中括号"[ ]"来访问属性的值:
var citys = [
{ "provice": "江苏省", "city": "徐州市", "district": "邳州市" },
{ "provice": "江苏省", "city": "南京市", "district": "鼓楼区" },
{ "provice": "安徽省", "city": "滁州市", "district": "南谯区" }
];
for (x in citys) {
document.getElementById("p1").innerHTML += citys[x].city + "</br>";
}
网友评论