json的优势(相对于xml)
1、可读性(可读)
2、可扩展性(有)
3、编码难度(快)
4、解码难度(易)
5、有效数据率(有效)
JSON编写的数据格式
对象形式:
对象:对象在js中表示为“{ }”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为对象.key 获取属性值,这个属性值的类型可以是数字、字符串、数组、对象几种。对象是一个无序的“‘名称/值’对”集合。
(1)一个对象以“{”(左括号)开始,“}”(右括号)结束。
(2)每个“名称”后跟一个“:”(英文冒号);
(3)“‘名称/值’ 对”之间使用“,”(英文逗号)分隔。
{ "name": "zhangsan", "password": "123456", "email": "12345@qq.com" }
数组形式的json数据
数组:数组在js中是中括号“[ ]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。数组是值(value)的有序集合。
(1)一个数组以“[”(左中括号)开始,“]”(右中括号)结束。
(2)值之间使用“,”(逗号)分隔。
/** * 如果使用 var 变量声明的话,那么调用属性为:data.user,就可以进行遍历
* 如果不使用 var 声明的话就不能就行数据操作
* 如果是ajax请求的本地json数据的话,json文件可以不需要 var 变量声明了 */ var data = { "user": [{ "name": "张三", "password": "1234" }, { "name": "张三", "password": "1234" }, { "name": "张三", "password": "1234" } ] }
JSON数据和String数据的转化
把一个JSON对象转化为String
JSON.stringify(JSON对象)
把一个符合json格式的String对象转化为json
第一种:eval('('+String对象+')')
第二种:首先引入json2.js 下载地址
JSON.parse(String对象)
window.onload = function() { var user = { "name": "张三1", "password": "1234" }; console.log(user.name); /** * json对象转换string对象 */ var userStr = JSON.stringify(user); console.log(userStr); /** * string 对象转json对象 */ var userJson = eval('(' + userStr + ')'); console.log(userJson.name); /** * 使用json2.js转换json */ var UserJson2 = JSON.parse(userStr); console.log(UserJson2.name); }