JSON(读Jason)是为了能够使得数据格式成为一种标准,更简单的被JavaScript解析。
优点
1、轻量级的数据交换格式
2、人们读写更加容易
3、易于机器的解析和生成
4、能够通过JavaScript中eval()函数解析JSON
5、JSON支持多语言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.
语法
JSON语法是一种用于传输和生成数据的协定,很类似于C家族的语言,所以很容易被C家族的语言所解析。
对象:对象包含在{}之间
属性:采用Key-Value对来表示。属性之间使用逗号分开。 string : value
数组:数组存放在[]之间 [ elements ]
元素:元素之间用逗号分开
值:值可以是字符串,数字,对象,数组,true,false,null
例子:JSON
{
name: " Michael ",
email: " 17bity@gmail.com ",
homepage: " http://www.google.com "
},
{
name: " John ",
email: " john@gmail.com ",
homepage: " http://www.google.com "
},
{
name: " Peggy ",
email: " peggy@gmail.com ",
homepage: " http://www.google.com "
}
]
简单 JSON 示例
按照最简单的形式,可以用下面这样的 JSON 表示名称/值对:
{ ”firstName”: ”Brett” }
这个示例非常基本,而且实际上比等效的纯文本名称/值对占用更多的空间:
firstName=Brett
但是,当将多个名称/值对串在一起时,JSON 就会体现出它的价值了.首先,可以创建包含多个名称/值对的记录,比如:
{ ”firstName”: ”Brett”, ”lastName”:”McLaughlin”, ”email”: ”brett@newInstance.com” }
如果使用 JSON,就只需将多个带花括号的记录分组在一起:
![](https://i-blog.csdnimg.cn/blog_migrate/81178cc93a2a3bb5048d90d76e7ec935.gif)
{ " firstName ": " Brett ", " lastName ": " McLaughlin ", " email ": " brett@newInstance.com " },
{ " firstName ": " Jason ", " lastName ": " Hunter ", " email ": " jason@servlets.com " },
{ " firstName ": " Elliotte ", " lastName ": " Harold ", " email ": " elharo@macfaq.com " }
],
“authors”: [
{ " firstName ": " Isaac ", " lastName ": " Asimov ", " genre ": " science fiction " },
{ " firstName ": " Tad ", " lastName ": " Williams ", " genre ": " fantasy " },
{ " firstName ": " Frank ", " lastName ": " Peretti ", " genre ": " christian fiction " }
],
“musicians”: [
{ " firstName ": " Eric ", " lastName ": " Clapton ", " instrument ": " guitar " },
{ " firstName ": " Sergei ", " lastName ": " Rachmaninoff ", " instrument ": " piano " }
]
}
//第一部分
var list1 = [1,3,4];
alert(list1[1]);
var list2 = [{"name":"leamiko","xing":"lin"}];
alert(list2[0]["xing"])
alert(list2[0].xing)
//第二部分
var value = {
”china”:{
”hangzhou”:{“item”:”1″},
”shanghai”:{“item”:”2″},
”chengdu”:{“item”:”3″}
},
”America”:{
”aa”:{“item”:”1″},
”bb”:{“item”:”2″}
},
”Spain”:{
”dd”:{“item”:”1″},
”ee”:{“item”:”2″},
”ff”:{“item”:”3″}
}
};
for(var countryObj in value)
{
document.write(countryObj + ”:<br />”)
//没用的for(var cityObj in value.countryObj)
for(var cityObj in value[countryObj])
{
document.write(‘ ’ + cityObj + ”<br />”);
for(var itemObj in value[countryObj][cityObj])
{
document.write(“ ”+ itemObj + value[countryObj][cityObj][itemObj] +”<br />”)
}
}
}
//第三部分
var value2 = {
"china":[
{"name":"hangzhou", "item":"1"},
{"name":"shanghai", "item":"2"},
{"name":"sichuan", "item":"3"}
],
"America":[
{"name":"aa", "item":"12"},
{"name":"bb", "item":"2"}
],
"Spain":[
{"name":"cc", "item":"1"},
{"name":"dd", "item":"23"},
{"name":"ee", "item":"3"}
]
};
for (var countryObj in value2)
{
document.write(countryObj + ":<br />")
for (var cityObj in value2[countryObj])
{
//可以用document.write("-----" + value2[countryObj][cityObj].item + "<br />");
document.write(cityObj + " ++++++ " + value2[countryObj][cityObj]["name"] + "<br />" );
}
}
//第四部分
var value2 = {
”china”:[
{"name":"hangzhou", "item":"1"},
{"name":"shanghai", "item":"2"},
{"name":"sichuan", "item":"3"}
],
”America”:[
{"name":"aa", "item":"12"},
{"name":"bb", "item":"2"}
],
”Spain”:[
{"name":"cc", "item":"1"},
{"name":"dd", "item":"23"},
{"name":"ee", "item":"3"}
]
};
for (var countryObj in value2)
{
document.write(countryObj + ”:<br />”)
//document.write(“ ” + value2[countryObj].length);
for (var i = 0;i < value2[countryObj].length; i++)
{
document.write(“ ” + value2[countryObj][i]["name"] + ”<br />”);
}
}
var jsonObj = eval(“(“ + jsonStr + ”)”);