JSON(JavaScript对象表示法 JavaScript Object Notation),是存储和交换文本信息的语法,轻量级的文本数据交换格式,类似XML,但是比XML更小、更快、更容易解析。
JSON独立于各种编程语言平台,并且几乎所有的主流编程语言都内置了对JSON数据格式的支持。
JSON语法规则
JSON语法是JavaScript对象表示法语法的子集:
- 数据以名/值 对的形式表示
- 数据之间以逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON值
JSON名值对包括字段名称(包含在双引号中),后面一个冒号,然后是值,如:
"username": "Jessica"
JSON值可以包含以下多种类型:
- 数字(整数和浮点数)
- 字符串(在双引号中)
- 逻辑值(true或false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
JSON对象和JSON数组
JSON对象包含在花括号中,可以包含多个名/值对,其值可以为数组;JSON数组包含在方括号中,可以包含多个对象。JSON既可以以花括号开头,也可以以方括号开头,JSON对象和JSON数组可以互相嵌套,如:
代码:
function showJSON(){
var user=
{
"username":"andy",
"age":20,
"info":{"tel":"123456","cellphone":"53657"},
"address":
[
{"city":"beijing","postcode":"2332333"},
{"city":"newyork","postcode":"5556666"}
]
}
alert(user.username);
alert(user.age);
alert(user.info.tel);
alert(user.info.cellphone);
alert(user.address[0].city);
alert(user.address[1].postcode);
user.username="Tom";
alert(user.username);
}
JSON解析和序列化
早期的JSON解析器基本上就是使用JavaScript的eval()函数。由于JSON是JavaScript语法的子集,因此eval()函数可以解析并返回JavaScript对象和数组。
1.使用JSON.parse()把字符串解析为JSON对象或数组。
2.使用JSON.stringify()把JSON对象或数组序列化为字符串。
在后台使用json格式的数据有两种方法:
1、JSONObject
是一个json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value}。
输出的json格式数据
2、JSONArray
json数组,使用中括号[ ],只不过数组里面的项也是json键值对格式的。
输出结果:
Json对象中是添加的键值对,JSONArray中添加的是Json对象
区别是JSONObject是一个对象,JSONArray是一个数组。
json经常出现的错误:
{
“name”:"annay" 对于键值对:名称是一个字符串,必须用双引号,且值不能用单引号
}