什么是json数据 存储和交换文本信息的语法格式 xml也是一种常用的格式,但是json比xml更轻量一些
特点
复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。原始类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。字符串必须使用双引号表示,不能使用单引号。对象的键名必须放在双引号里面。数组或对象最后一个成员的后面,不能加逗号。json对象格式和js对象
区别JSONJavascript含义仅仅是一种数据格式表示类的实例传输可以跨平台数据传输,速度快不能传输表现1.键值对方式,键必须加双引号
2.值不能是方法函数,不能是undefined/NaN
1.键值对方式,键不加引号
2.值可以是函数、对象、字符串、数字、boolean 等
相互转换Json转换Js对象
1.JSON.parse(JsonStr);(不兼容IE7)
2.eval("("+jsonStr+")");(兼容所有浏览器,但不安全,会执行json里面的表达式?)
js对象转换Json
JSON.stringify(jsObj);
其他调用JSON官网的JS,实现parse和stringify在各个浏览器的兼容: // json对象 { "name": "jack", "age": 12, "address": { "province": "江西", "city": "宜春" }, "hoby": null, "phone": ["小米", "苹果", "锤子"] } // js对象 { name: 'jsck', age: 18 }json数组格式 特点:就是由json对象组成的数组,最外层是[]
[{ "name": "jack", "age": 18 }, { "name": "lisa", "age": 20 }]json压缩:将JSON压缩成一行,去掉换行和空格字符
// 压缩前 [{ "name": "jack", "age": 18 }, { "name": "lisa", "age": 20 }] // 压缩后 [{"name":"jack","age":18},{"name":"lisa","age":20}]json转义:将JSON中的双引号""前面添加转义符号\,利于拼接字符串
// 转义前 [{ "name": "jack", "age": 18 }, { "name": "lisa", "age": 20 }] // 转义后 [{ \"name\": \"jack\", \"age\": 18 }, { \"name\": \"lisa\", \"age\": 20 }] // 压缩并转义后 [{\"name\":\"jack\",\"age\":18},{\"name\":\"lisa\",\"age\":20}]