一、什么是json:(javascript object notation)是一种轻量级的数据交换格式,是一种与平台无关的数据交换
轻量级:相对于xml而言,JSON解析速度更快,文档更小
二、<emp>
<name>Sally</name>
<city>北京</city>
<age>25</age>
</emp>
{“name”:”Sally”,”city”:”北京”,”age”:25}
三、JSON主要分为两种结构
1、 名称/值 对的集合
2、 值得有序列表,大部分语言中理解为数组
四、JSON的表示
1、使用JSON表示对象
{属性名:属性值,属性名:属性值…}
如:{“name”:”Sally”,”city”:”北京”,”age”:25}
属性值可以是:String ,number,Boolean(true,false),null,object
属性名必须使用双引号引起来
属性值如果是字符串,必须使用双引号引起来
3、 使用JSON表示一个数组
语法:[value,value,value…]
Value可以是简单数据类型,也可以是object,数组类型。
例如
这是JSON数组:[{“name”,”jerry”,”age”:22},
{“name”,”Tom”,”age”:32}]
这个代表JSON对象:{“name”:”Jerry”,
“hobby”:[“sing”,”dance”,”eat”]}
Json事例讲解
1、 json在前台页面的操作
<html>
<head>
<base href="<%=basePath%>">
<script type="text/javascript" src="/json-first/js/json.js"></script>
<script type="text/javascript">
//将json字符串转换为json对象
function f1(){
var str = '{"name":"Luffy","age":17}';
//第一种方式(不需要任何的js文件)
var obj = eval("("+str+")");
//第二种方式(不需要任何的js文件)
var obj2 = JSON.parse(str);
//第三种方式(需要json.js文件)
var obj3 = str.parseJSON();
alert(obj.name);
alert(obj2.name);
alert(obj3.name);
}
//将json字符串转换为json数组
function f2(){
//将json数组字符串转换成为json数组对象
var str='[{"name":"Luffy","age":17},{"name":"Zoze","age":19}]';
//第一种方式(不需要js文件)
var arr1 = eval("("+str+")");
alert(arr1[0].name);
//第二种方式(需要js文件)
var arr = str.parseJSON();
alert(arr[1].name);
}
//将json对象转换成json字符串
function f3(){
var obj = {"name":"Luffy","age":17};
//第一种方式(需要json.js文件)
var str = obj.toJSONString();
alert(str);
//第二种方式(不需要任何的js文件)
var str2 = JSON.stringify(obj);
alert(str2);
//如果直接输出json对象将会输出什么内容:[Object object]
alert(obj);
}
</script>
</head>
<body>
<input type="button" value="将json字符串转换为json对象" onclick="f1()" />
<input type="button" value="将json字符串转换为json数组" onclick="f2()" />
<input type="button" value="将json对象转换成为json字符串" onclick="f3()"/>
</body>
</html>