JSON:
1.概念:Javascript对象表示法(JavaScript Object Notation)
JSON是存储和交换文本信息的语法。类似XML
JSON比XML更小、更快、更易解析
eg:在JAVA中表示:
Person P = new Person();
P.setName(“张三”);
P.setAge(23);
P.setGender(“男”)
跟Json表示的含义相同:
var p = {“name”:“张三”,“age”:23,“gender”:“男”}
2.语法:
2.1基本规则:
数据在名称/值对中:json数据是由键值对构成的
键同引号(单双都行)引起来,也可以不使用引号
值的取值类型:
1.数字(整数或浮点数)
2.字符串(在双引号中)
3.逻辑值(true 或 false)
4.数组(在方括号中){“persons”:}
5.对象(在花括号中){“address”:{“province”:“北京”。。。}}
null
数据由逗号分隔:多个键值对由逗号分隔
花括号保存对象:使用{}定义json格式
方括号保存数组:[]
2.2获取数据:
1.json对象.键名
2.json对象[“键名”]
3.数组对象[索引]
3.JSON数据和Java对象的相互转换
*JSON解析器:
常见的解析器:Jsonlib,Gson,fastjson,jackson
3.1JSON转为Java对象
3.2Java对象转换JSON
4.JSON 与 JS 对象的关系
4.1要实现从对象转换为JSON字符串,使用JSON.stringify()方法:
var obj = JSON.stringify({a:“hello”,b:“world”}); 结果是:‘{a:“hello”,b:“world”}’
4.2要实现从JSON转换为对象,使用JSON.parse()方法;
var obj = JSON.parse(’{a:“hello”,b:“world”}’); 结果是:{a:“hello”,b:“world”}
例子(此操作需要安装一个wamp服务器或者其他服务器也可以,并将下面三个文件放在wamp安装目录下www里面,打开html点键钮即可):
12-ajax-json.html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="ajax.js"></script>
<script>
window.onload = function (ev) {
var btn = document.querySelector("button");
btn.onclick =function (ev1) {
ajax({
type:"get",
url:"12-ajax-json.php",
success:function (xhr) {
console.log(xhr);
// json格式转为js格式
// 在低版本IE中,不可以使用原生json.parse方法,但可以使用json2.js这个框架
var obj = JSON.parse(xhr);
console.log(obj);
console.log(obj.name);
console.log(obj.age);
},
error:function(xhr){
console.log(xhr.status);
}
})
}
}
</script>
</head>
<body>
<button>提交json</button>
</body>
</html>
12-ajax-json.txt代码如下:
{
"name":"张三",
"age":"18"
}
12-ajax-json.php代码如下:
<?php
echo file_get_contents("12-ajax-json.txt");