JSON语法是javascript语法的子集
JSON 语法是 JavaScript 对象表示语法的子集。
- 数据在名称/值对中
- 数据由逗号分隔
- 大括号保存对象
- 中括号保存数组
JSON 名称/值对
JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"name" : "菜鸟教程"
JSON 值
JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在中括号中)
- 对象(在大括号中)
- null
JSON 数字
JSON 数字可以是整型或者浮点型:
{ "age":30 }
JSON 对象
JSON 对象在大括号({})中书写:
对象可以包含多个名称/值对:
{ "name":"菜鸟教程" , "url":"www.runoob.com" }
JSON 数组
JSON 数组在中括号中书写:
数组可包含多个对象:
{ "sites": [ { "name":"菜鸟教程" , "url":"www.runoob.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" } ] }
在上面的例子中,对象 "sites" 是包含三个对象的数组。每个对象代表一条关于某个网站(name、url)的记录。
JSON 布尔值
JSON 布尔值可以是 true 或者 false:
{"flag";true}
JSON NULL值
{"age":null}
JSON 使用 JavaScript 语法
因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。
通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:
var sites=[ {"name":"xiaoming","age":22,"number":222}, {"name":"liming","age":23,"number":333} ]
可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始): console.log(sites[0].name);
可以像这样修改数据:
sites[0].name="wanqngcui"; console.log( sites[0].name)
JSON 对象
对象语法
{ "name":"runoob", "alexa":10000, "site":null }
json对象在大括号({})中书写
对象可以包含多个key/value(键/值)对。
key必须是字符串,value可以是合法的JSON数据类型(字符串,数字,对象,布尔值,数组和null),key 和 value 中使用冒号(:)分割。每个 key/value 对使用逗号(,)分割。
访问对象值
(1)你可以通过(.)来访问对象的值:
var myobj,x; myobj={"name":"aa","age":24}; x=myobj.name; console.log(x);
(2)你也可以使用中括号([])来访问对象的值:
var myobj,x; myobj={"name":"aa","age":24}; b=myobj["age"]; console.log(b)
循环对象
你可以使用 for-in 来循环对象的属性:
var sites={ "name":"xiaoming", "age":13, "number":33 } // 可以使用for- in 来循环对象的属性 for(x in sites){ console.log(x); }
输出 name age number
在 for-in 循环对象的属性时,使用中括号([])来访问属性的值:
var sites={ "name":"xiaoming", "age":13, "number":33 } // 在for-in 循环对象的属性时,使用中括号([])来访问属性的值 for(x in sites){ console.log(sites[x]) } 输出:xiaoming 13 33
嵌套 JSON 对象
JSON 对象中可以包含另外一个 JSON 对象:
你可以使用点号(.)或者中括号([])来访问嵌套的 JSON 对象。
var sites={ "name":"xiaoming", "age":13, "number":33, "local":{ "site1":"www.runoob.com", "site2":"m.runoob.com", "site3":"c.runoob.com" } } console.log(sites.local.site1); console.log(sites.local["site1"]);
输出:www.runoob.com
www.runoob.com
修改值
你可以使用点号(.)来修改 JSON 对象的值:你可以使用中括号([])来修改 JSON 对象的值:
var sites={ "name":"xiaoming", "age":13, "number":33, "local":{ "site1":"www.runoob.com", "site2":"m.runoob.com", "site3":"c.runoob.com" } } sites.local.site2=22; sites.local["site1"]=33 console.log(sites.local.site2); console.log(sites.local["site1"]);
输出:22 33
删除对象属性
我们可以使用 delete 关键字来删除 JSON 对象的属性:你可以使用中括号([])来删除 JSON 对象的属性:
(1)
var myobj ,i ,x; myobj={ "name":"runoob", "axexa":10000, "sites":{ "site1":"www.baidu.com", "site2":"www.gogle.com", "site3":"www.chome.com", } } delete myobj.sites.site1;
delete myobj.sites["site1"]; for(i in myobj.sites){ x=myobj.sites[i]; console.log(x) }