JSON 指的是 JavaScript 对象中一个表示的方法。
JSON 通常用于与服务端交换数据。
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
数据在名称/值对中
数据由逗号分隔
大括号保存对象
中括号保存数组
(1)数字(整数或浮点数)
{ "age":30 }
(2)字符串(在双引号中)
{ "nickname":"我爱你中国"}
(3)逻辑值(true 或 false)
{ "isChange":true}
(4)数组(在中括号中)
{
"sites": [
{ "name":"百度" , "url":"www.baidu.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
]
}
(5)对象(在大括号中)
{ "name":"菜鸟教程" , "url":"www.runoob.com" }
(6)null
{ "name":null }
(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 myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += myObj[x] + "
";
}
(4) 嵌套对象
myObj = {
"name":"runoob",
"alexa":10000,
"sites": {
"site1":"www.runoob.com",
"site2":"m.runoob.com",
"site3":"c.runoob.com"
}
}
//访问
x = myObj.sites.site1;
//修改
myObj.sites.site1 = "www.google.com";
// 删除
delete myObj.sites.site1;
(1)
{
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}
//访问
x = myObj.sites[0];
// 循环访问
for (i in myObj.sites) {
x += myObj.sites[i] + "
";
}
(2) 嵌套对象
myObj = {
"name":"网站",
"num":3,
"sites": [
{ "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻译" ] },
{ "name":"Runoob", "info":[ "菜鸟教程", "菜鸟工具", "菜鸟微信" ] },
{ "name":"Taobao", "info":[ "淘宝", "网购" ] }
]
}
//访问
for (i in myObj.sites) {
x += ""
+ myObj.sites[i].name + "";
for (j in myObj.sites[i].info) {
x += myObj.sites[i].info[j] + "
";
}
}
// 修改
myObj.sites[1] = "Github";
// 删除
delete myObj.sites[1];
在接收服务器数据时一般是字符串。可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。
实例:
{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }
转化为javascript对象
var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
在向服务器发送数据时一般是字符串。可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。
实例:
var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
转换为字符串:
var myJSON = JSON.stringify(obj);
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。
var txt = '{ "sites" : [' +
'{ "name":"菜鸟教程" , "url":"www.runoob.com" },' +
'{ "name":"google" , "url":"www.google.com" },' +
'{ "name":"微博" , "url":"www.weibo.com" } ]}';
var obj = eval ("(" + txt + ")");
菜鸟JSON教程