最近在动手写一个S2SH结合EasyUI的一个网站,其中用到了EasyUI的Datagrid组件。在后台和前台交互与数据传输的过程中,
数据传输的格式是JSON。之前只对JSON有一个简单了解,下面就从语法等多方面做一下稍微深入点的学习。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,JSON采用完全独立于语言的文本格式,易于人阅读和编
写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
一、格式介绍
JSON 语法是 JavaScript 对象表示语法的子集。
1、数据在键值对中
2、数据由逗号分开
3、花括号保存对象
4、方括号保存数组
JSON的格式是键值对的形式,例如: “键名”:“值”。 其中,JSON的值可以为①数字②字符串③逻辑值④数组[在方括号中]
⑤对象{在花括号中}⑥null
实例1:
{
"people":[
{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},
{"firstName":"Jason","lastName":"Hunter","email":"bbbb"},
{"firstName":"Elliotte","lastName":"Harold","email":"cccc"}
]
}
上例只有一个名为people的变量,它的值是一个含有三个对象的数组,每个对象中又包含三个条目。
实例2:
{
"programmers": [{
"firstName": "Brett",
"lastName": "McLaughlin",
"email": "aaaa"
}, {
"firstName": "Jason",
"lastName": "Hunter",
"email": "bbbb"
}, {
"firstName": "Elliotte",
"lastName": "Harold",
"email": "cccc"
}],
"authors": [{
"firstName": "Isaac",
"lastName": "Asimov",
"genre": "sciencefiction"
}, {
"firstName": "Tad",
"lastName": "Williams",
"genre": "fantasy"
}, {
"firstName": "Frank",
"lastName": "Peretti",
"genre": "christianfiction"
}],
"musicians": [{
"firstName": "Eric",
"lastName": "Clapton",
"instrument": "guitar"
}, {
"firstName": "Sergei",
"lastName": "Rachmaninoff",
"instrument": "piano"
}]
}
上例中多个条目中又包含多个条目,而且在每个一级条目下,可以包含不同的次级条目。
实例3:
{
id: '100000',
text: '廊坊银行总行',
children: [
{
id: '110000',
text: 'A',
children: [
{
id: '113000',
text: 'A1',
leaf: true
},
{
id: '112000',
text: 'A2',
children: [
{
id: '112200',
text: 'A11',
leaf: true
},
{
id: '112100',
text: 'A12',
leaf: true
}
]
},
{
id: '111000',
text: 'A3',
leaf: true
}
]
}
]
}
上述是一个非常典型的JSON嵌套结构,同时也是一个树形结构。
二、格式应用
JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
例如可以直接创建一个JavaScript变量,将JSON赋值给它。
var people = {
"programmers": [{
"firstName": "Brett",
"lastName": "McLaughlin",
"email": "aaaa"
}, {
"firstName": "Jason",
"lastName": "Hunter",
"email": "bbbb"
}, {
"firstName": "Elliotte",
"lastName": "Harold",
"email": "cccc"
}],
"authors": [{
"firstName": "Isaac",
"lastName": "Asimov",
"genre": "sciencefiction"
}, {
"firstName": "Tad",
"lastName": "Williams",
"genre": "fantasy"
}, {
"firstName": "Frank",
"lastName": "Peretti",
"genre": "christianfiction"
}],
"musicians": [{
"firstName": "Eric",
"lastName": "Clapton",
"instrument": "guitar"
}, {
"firstName": "Sergei",
"lastName": "Rachmaninoff",
"instrument": "piano"
}]
};
访问数据也很简单,因为可以将上面变量的值看做数组,可以用点号表示法来表示数组元素,所以基本的访问方式如下:
people.musicians[0].lastName
修改数据的方式即赋值给上述表达式即可,例如:
people.musicians[0].lastName = “stupid”