JSON采用完全独立于语言的文本格式,而且很多语言都提供了对json的支持(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这样就使得JSON成为理想的数据交换语言。
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 JSON采用完全独立于语言的文本格式,而且很多语言都提供了对json的支持(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这样就使得JSON成为理想的数据交换语言。
json是轻量级的数据交换格式。
轻量级是指跟xml格式比较。
json是由键值对组成。键必须使用引号引起来,键和值之间使用冒号进行分隔,多组键值对之间使用逗号进行分隔。
由花括号(大括号)包含所有的键值对。
var 变量名 = {
“key1” : value ,
“key2” : value
};
json的值可以有很多种数据类型
可以是number类型
可以是String类型
可以是boolean类型
也可以是一个json对象
也可以是js的数组
还可以是json数组。
整体上我们json一个对象。
// json的定义
var json = {
"key1" : 12,
"key2" : "abc",
"key3" : [3,"str3",**true**],
"key4" : {
"key4_1" : 41,
"key4_2" : "str42"
},
"key5" : [
{
"key5_1_1" : 511,
"key5_1_2" : "str512"
} ,
{
"key5_2_1" : 521,
"key5_2_2" : "str522"
}
]
};
json对象.key值
// json的访问
// alert( json.key1 ); // 12
// alert( json.key2 ); // abc
// alert( json.key3[2] ); // true
// alert( json.key4.key4_2 ); // str42
alert( json.key5[0].key5_1_2 ); // str512
JSON.stringify() 将json对象转换成为json字符串
JSON.parse() 将json字符串转换为json对象
// json对象转字符串
var jsonString = JSON.stringify( json );
// json字符串转json对象
var jsonObj = JSON.parse( jsonString );
alert( jsonObj.key2 );
我们这里主要讲解 谷歌提供的一个专门用来操作json的工具包。叫gson.jar
gson-2.2.4.jar
public class Person {
private Integer id;
private String name;
@Test
public void testJavaBeanToJson() throws Exception {
Person person = new Person(1, "华仔");
// 创建谷歌提供的工具类
Gson gson = new Gson();
// toJson 把对象转换成为json字符串
String personJsonString = gson.toJson(person);
System.out.println( personJsonString );
// fromJson 是把json字符串转换回javaBean对象
Person p1 = gson.fromJson(personJsonString, Person.class);
System.out.println( p1 );
}
@Test
public void testListToJson() throws Exception {
List<Person> persons = **new** ArrayList<Person>();
persons.add(new Person(1, "阿喜最帅"));
persons.add(new Person(2, "阿喜最优雅"));
persons.add(new Person(3, "阿喜说了算"));
Gson gson = new Gson();
// 把list集合转换为json字符串
String personListJsonString = gson.toJson(persons);
System.out.println( personListJsonString );
List<Person> list2 = gson.fromJson(personListJsonString, new PersonListType().getType());
System.out.println( list2 );
Person person = list2.get(0);
System.out.println( person );
}
// 3.3、map 和json的互转
@Test
public void testMapToJson() throws Exception {
Map<String, Person> map = new HashMap<String, Person>();
map.put("p1", new Person(1, "飞龙"));
map.put("p2", new Person(2, "振国"));
map.put("p3", new Person(3, "大师"));
Gson gson = new Gson();
// 把map集合转换成为json字符串
String mapJsonString = gson.toJson(map);
System.out.println( mapJsonString );
Map<String, Person> map2 = gson.fromJson(mapJsonString, new TypeToken< HashMap<String, Person> >() {}.getType());
System.out.println( map2 );
Person person = map2.get("p1");
System.out.println(person);
}
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 ajax是一种浏览器通过js异步发起请求。局部更新页面的技术。
原生的js的Ajax请求:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function ajaxRequest() {
// 1、我们首先要创建XMLHttpRequest
var xmlHttpRequest = new XMLHttpRequest();
// 2、调用open方法设置请求参数
xmlHttpRequest.open("GET", "http://localhost:8080/day15/ajaxServlet?action=javaScriptAjax", true);
// 4、在send方法前绑定onreadystatechange事件,处理请求完成后的操作。
xmlHttpRequest.onreadystatechange = function(){
// 判断请求已完成,而且是成功的请求
if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
// alert("服务器返回的数据:" + xmlHttpRequest.responseText );
// document.getElementById("div01").innerHTML = xmlHttpRequest.responseText;
var jsonObj = JSON.parse( xmlHttpRequest.responseText );
document.getElementById("div01").innerHTML = "编号:" + jsonObj.id + " , 姓名:" + jsonObj.name;
}
}
// 3、调用send方法发送请求
xmlHttpRequest.send();
alert("Ajax代码已完成");
}
</script>
</head>
<body>
<button onclick="ajaxRequest()">ajax request</button>
<button onclick="ajaxRequest()">ajax request</button>
<button onclick="ajaxRequest()">ajax request</button>
<button onclick="ajaxRequest()">ajax request</button>
<button onclick="ajaxRequest()">ajax request</button>
<button onclick="ajaxRequest()">ajax request</button>
<button onclick="ajaxRequest()">ajax request</button>
<a href="login.jsp">login.jsp</a>
<div id="div01">
</div>
</body>
</html>
标签 | 描述 |
---|---|
url | 请求的资源地址 |
type | 请求的类型 GET或POST |
data | 发送给服务器的数据。数据格式可以是:name=value&name=value 也可以是: {key:value,key2:value} |
success | 响应的函数(成功的回调函数) |
dataType | 服务器返回的数据类型。 常用值是:text(普通文本)、xml(返回数据格式是xml)、json(返回数据是json对象) |
$.ajax({
url:"http://localhost:8080/day15/ajaxServlet",
type:"GET",
data:"action=jqueryAjax",
success:**function**(data){
// alert("服务器返回的数据:" + data);
// var jsonObj = JSON.parse( data );
$("#msg").html("编号:" + data.id + " , 姓名:" + data.name);
},
dataType:"json"
});
标签 | 描述 |
---|---|
url | 请求的资源地址 |
data | 发送给服务器的数据。数据格式可以是:name=value&name=value 也可以是: {key:value,key2:value} |
callback | 响应的函数(成功的回调函数) |
type | 服务器返回的数据类型。 常用值是:text(普通文本)、xml(返回数据格式是xml)、json(返回数据是json对象) |
$("#getBtn").click(function(){
$.get("http://localhost:8080/day15/ajaxServlet",{"action":"jqueryGet"},function(data){
$("#msg").html("编号:" + data.id + " , 姓名:" + data.name);
},"json");
});
$("#postBtn").click(**function**(){
// post请求
$.post("http://localhost:8080/day15/ajaxServlet","action=jqueryPost",**function**(data){
$("#msg").html("编号:" + data.id + " , 姓名:" + data.name);
},"json");
});
标签 | 描述 |
---|---|
url | 请求的资源地址 |
data | 发送给服务器的数据。数据格式可以是:name=value&name=value 也可以是: {key:value,key2:value} |
callback | 响应的函数(成功的回调函数) |
$.getJSON("http://localhost:8080/day15/ajaxServlet",{"action":"jqueryGetJSON"},
function(data){
$("#msg").html("编号:" + data.id + " , 姓名:" + data.name);
});
// ajax请求
$("#submit").click(function(){
// 把参数序列化
$.getJSON("http://localhost:8080/day15/ajaxServlet","action=jquerySerialize&" + $("#form01").serialize() ,function(data){
$("#msg").html("编号:" + data.id + " , 姓名:" + data.name);
});
});
本站为非盈利网站,如果您喜欢这篇文章,欢迎支持我们继续运营!
本站主要用于日常笔记的记录和生活日志。本站不保证所有内容信息可靠!(大多数文章属于搬运!)如有版权问题,请联系我立即删除:“abcdsjx@126.com”。
QQ: 1164453243
邮箱: abcdsjx@126.com