一 JSON的简介
1 .JSON是一种轻量级的数据交换格式
2. JSON通常用于服务器端向网页传递数据
3 JSON 是存储和交换文本信息的语法。类似 XML;
4 JSON是在AJAX中代替XML交换数据的更佳方案。
二 JSON语法规则
数据使用键值对的方式;
数据由逗号分割;
大括号保存对象;
方括号保存数组
JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
<script>
//js中的对象表示
var user={
name:'张三',
age:'30'
}
//josn对象表示
//json本质上是字符串
//普通数组
var arr=["aaa",100,true]
//json数组
["aaa",100,true] //少了变量赋值
//数组对象组合嵌套使用
[{
"name":"aaa",
"age":30
},{
"name":"bbb",
"age":25
},{
"name":"ccc",
"age":18
}]
</script>
三:JSON 的解析和序列化
一般情况下,我们的json数据都是从服务端获取到的,获取的json数据是以字符串的形式返回的。这个字符串虽然是json格式的,但是不能被直接使用,我们必须将该字符串转化为一个对象才能正常解析它
JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象,但是存在安全问题(如果JSON中包含恶意代码也会被直接执行)
使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON解析器只会识别JSON文本,而不会执行
JSON 的解析:json数据转换成js对象
语法:var myObject = JSON.parse(myJSONtext, reviver);
JSON的序列化:js对象转换成json数据(字符串)
var myJSONText = JSON.stringify(myObject, replacer);
<script>
//实际使用的时候json数据需要从服务器加载,这里假定下面的数据是从服务器加载过来的,来演示后续的操作。
var jsonstr='[{"name":"aaa","age":30},{"name":"bbb","age":25},{"name":"ccc","age":18}]';
//alert(typeof(jsonstr))
//json数据转换成js对象
//var jsonobj=JSON.parse(jsonstr);
//alert(jsonstr)
// alert(jsonobj[0].name)
//alert(typeof(jsonobj))
var jsonobj=JSON.parse(jsonstr,function(key,value){
if ((key=='name')) {
alert('VIP会员:'+value) ;
}else
{
alert(value)
}
});
</script>