前言
1.什么是JSON,有什么用?
JavaScript Object Notation.简称JSON。(数据交换格式)
主要作用:一种标准的数据交换格式。(目前非常流行,90%以上的系统,系统A和系统B交换数据的话,都是采用JSON.)
2.JSON是一种标准的轻量级的数据交换格式。特点是:
体积小,易解析。
3.在实际的开发中有两种数据交换格式,使用最多,其一是JSON,另一个是XML。
XML体积较大,解析麻烦,但是有其优点是:语法严谨。(通常银行相关的系统之间进行数据交换会使用XML。
一、怎么创建json对象以及访问json对象的属性
4.JSON的语法格式:
var jsonObj = {
"属性名":属性值,
"属性名":属性值,
"属性名":属性值,
"属性名":属性值,
...
};
注意:属性值的数据类型,可以是数值类型,布尔类型,字符串 ,也可以是数组和JSON对象
如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 创建JSON对象 -->
<script type="text/javascript">
var studentObj = {
"sno":"110",
"sname":"张三",
"sex":true,
"hobby":["唱歌","跳舞","跑步"],
"addr":{
"province":"湖南",
"city":"长沙",
"district":"岳麓"
}
};
//访问JSON对象的属性
alert(studentObj.sno+","+studentObj.sname+","+studentObj.sex);
alert(studentObj.sex ? "男":"女");
//遍历JSON数组
for(var i = 0;i<studentObj.hobby.length;i++){
var stuObj = studentObj .hobby[i];
alert(stuObj);
}
alert(studentObj .addr.province+","+studentObj .addr.city);
</script>
</body>
</html>
二、json字符串转json对象
方式一:使用eval函数
eval函数的作用是:
将字符串当做一段JS代码解释并执行。
如:window.eval("var i = 100;");
alert("i=" + i); //i=100
使用场景:java连接数据库,查询数据之后,将数据在java程序中拼接成JSON格式的“字符串”,将json格式的字符串响应到浏览器,也就是说java响应到浏览器上的仅仅是一个"JSON格式的字符串" ,还不是一个json对象 。可以使用eval函数,将json格式的字符串转换成json对象,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//从java传过来的json字符串
var fromJava = "{\"name\":\"zhangsan\",\"password\":\"123\"}";
//转换成json对象
window.eval("var jsonObj="+ fromJava);
//访问json对象
alert(jsonObj.name +","+jsonObj.password);
</script>
</body>
</html>
方式二:使用prase函数
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var jsonStr = "{\"username\":\"zhangsan\",\"password\":\"123\"}"
var jsonObj = JSON.parse(jsonStr)
console.log(jsonObj.username+","+jsonObj.password)
</script>
</body>
</html>