小言_互联网的博客

JSON&AJAX概述

385人阅读  评论(0)

目录

一、JSON

1.关于JSON

2.JSON在JavaScript中的使用

2.1、json的定义

2.2、json的访问

2.3、json的两个常用方法

3.JSON在java中的使用

3.1、javaBean和json的互转

3.2、List和json的互转

3.3、map和json的互转

二、AJAX

1.关于AJAX

2.原生AJAX请求的示例

3.jQuery中的AJAX请求

3.1、$.ajax 方法

3.2、$.get 方法和$.post 方法

3.3、$.getJSON 方法

3.4、表单序列化 serialize()


一、JSON

1.关于JSON

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对 json 的支持(包括 C, C++, C#, Java, JavaScript, Perl, Python等)。 这样就使得 JSON 成为理想的数据交换格式。

轻量级指的是跟 xml 做比较。

数据交换指的是客户端和服务器之间业务数据的传递格式。

 

2.JSON在JavaScript中的使用

2.1、json的定义

json 是由键值对组成,并且由花括号(大括号)包围。每个键由引号引起来,键和值之间使用冒号进行分隔,多组键值对之间进行逗号进行分隔。

json定义示例


  
  1. // json的定义
  2. var jsonObj = {
  3. "key1": 12,
  4. "key2": "abc",
  5. "key3": true,
  6. "key4": [ 11, "arr", false],
  7. "key5": {
  8. "key5_1": 551,
  9. "key5_2": "key5_2_value"
  10. },
  11. "key6": [{
  12. "key6_1_1": 6611,
  13. "key6_1_2": "key6_1_2_value"
  14. }, {
  15. "key6_2_1": 6621,
  16. "key6__2_2": "key6_2_2_value"
  17. }]
  18. };

 

2.2、json的访问

json 本身是一个对象。

json 中的 key 我们可以理解为是对象中的一个属性。

json 中的 key 访问就跟访问对象的属性一样: json 对象.key

json访问示例:


  
  1. //json的访问
  2. alert( typeof(jsonObj)); //object json就是一个对象
  3. alert(jsonObj.key1); //12
  4. alert(jsonObj.key2); //abc
  5. alert(jsonObj.key3); //true
  6. alert(jsonObj.key4); //得到数组[11,"arr",false]
  7. //json中数组的遍历
  8. for ( var i = 0; i < jsonObj.key4.length; i++) {
  9. alert(jsonObj.key4[i]);
  10. }
  11. alert(jsonObj.key5.key5_1); //551
  12. alert(jsonObj.key5.key5_2); //key5_2_value
  13. alert(jsonObj.key6); //得到json数组
  14. //每一个都是json对象
  15. var jsonItem = jsonObj.key6[ 0];
  16. alert(jsonItem.key6_1_1); //6611
  17. alert(jsonItem.key6_1_2); //key6_1_2_value

 

2.3、json的两个常用方法

json 的存在有两种形式:

一种是:对象的形式存在,我们叫它 json 对象。

一种是:字符串的形式存在,我们叫它 json 字符串。

一般我们要操作 json 中的数据的时候,需要 json 对象的格式。

一般我们要在客户端和服务器之间进行数据交换的时候,使用 json 字符串。

JSON.stringify() json 对象转换成为 json 字符串

JSON.parse() json 字符串转换成为 json 对象

示例代码:


  
  1. // json对象转字符串
  2. // alert(jsonObj);
  3. //json对象转换为字符串
  4. var jsonObjString = JSON.stringify(jsonObj);
  5. // alert(jsonObjString);
  6. //json字符串转换成为json对象
  7. var jsonObj2 = JSON.parse(jsonObjString);
  8. alert(jsonObj2);

 

3.JSON在java中的使用

需要导包

3.1、javaBean和json的互转


  
  1. /**
  2. * javabean和json的互转
  3. */
  4. @Test
  5. public void test1(){
  6. Person person = new Person( 1, "ABC");
  7. Gson gson = new Gson();
  8. //java对象转换成为json字符串
  9. String personJsonString = gson.toJson(person);
  10. System.out.println(personJsonString);
  11. //把json字符串转换为java对象
  12. Person person1 = gson.fromJson(personJsonString, Person.class);
  13. System.out.println(person1);
  14. }

3.2、List和json的互转


  
  1. /**
  2. * List和json的互转
  3. */
  4. @Test
  5. public void test2(){
  6. List<Person> personList = new ArrayList<Person>();
  7. personList.add( new Person( 1, "ABC"));
  8. personList.add( new Person( 2, "DEF"));
  9. personList.add( new Person( 3, "GHI"));
  10. personList.add( new Person( 4, "JKL"));
  11. Gson gson = new Gson();
  12. //List转换为json字符串
  13. String personListJsonString = gson.toJson(personList);
  14. System.out.println(personListJsonString);
  15. //json字符串转换为list集合
  16. List<Person> list = gson.fromJson(personListJsonString, new PersonListType().getType());
  17. System.out.println(list);
  18. Person person = list.get( 0);
  19. System.out.println(person);
  20. }

3.3、map和json的互转


  
  1. /**
  2. * map和json的互转
  3. */
  4. @Test
  5. public void test3(){
  6. Map<Integer,Person> personMap = new HashMap<Integer, Person>();
  7. personMap.put( 1, new Person( 1, "ABC"));
  8. personMap.put( 2, new Person( 2, "DEF"));
  9. personMap.put( 3, new Person( 3, "GHI"));
  10. personMap.put( 4, new Person( 4, "JKL"));
  11. Gson gson = new Gson();
  12. //map转换为json字符串
  13. String personMapJsonString = gson.toJson(personMap);
  14. System.out.println(personMapJsonString);
  15. //json字符串转换为map对象
  16. // Map<Integer,Person> map = gson.fromJson(personMapJsonString, new PersonMapType().getType());
  17. //使用匿名内部类方法进行转换
  18. Map<Integer,Person> map = gson.fromJson(personMapJsonString, new TypeToken<HashMap<Integer, Person>>(){}.getType());
  19. System.out.println(map);
  20. Person person = map.get( 1);
  21. System.out.println(person);
  22. }

 

二、AJAX

1.关于AJAX

AJAX 即“Asynchronous Javascript And XML(异步 JavaScript XML),是指一种创建交互式网页应用的网页开发技术。

Ajax 是一种浏览器通过 js 异步发起请求,局部更新页面的技术。Ajax 请求的局部更新,浏览器地址栏不会发生变化局部更新不会舍弃原来页面的内容

 

2.原生AJAX请求的示例


  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="pragma" content="no-cache"/>
  5. <meta http-equiv="cache-control" content="no-cache"/>
  6. <meta http-equiv="Expires" content="0"/>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title>Insert title here </title>
  9. <script type="text/javascript">
  10. function ajaxRequest() {
  11. // 1、我们首先要创建XMLHttpRequest
  12. var xmlHttpRequest = new XMLHttpRequest();
  13. // 2、调用open方法设置请求参数
  14. xmlHttpRequest.open( "GET", "http://localhost:8080/16_json_ajax_i18n/ajaxServlet?action=javaScriptAjax", true);
  15. // 4、在send方法前绑定onreadystatechange事件,处理请求完成后的操作。
  16. xmlHttpRequest.onreadystatechange = function () {
  17. if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
  18. var jsonObj = JSON.parse(xmlHttpRequest.responseText);
  19. document.getElementById( "div01").innerHTML= "编号:"+jsonObj.id+ "<br/>用户名:"+jsonObj.name;
  20. //alert(xmlHttpRequest.responseText);
  21. }
  22. }
  23. // 3、调用send方法发送请求
  24. xmlHttpRequest.send();
  25. }
  26. </script>
  27. </head>
  28. <body>
  29. <button οnclick="ajaxRequest()">ajax request </button>
  30. <div id="div01">
  31. </div>
  32. </body>
  33. </html>

 

3.jQuery中的AJAX请求

3.1、$.ajax 方法

url 表示请求的地址

type 表示请求的类型 GET POST 请求

data 表示发送给服务器的数据

格式有两种:

一:name=value&name=value

二:{key:value}

success 请求成功,响应的回调函数

dataType 响应的数据类型

常用的数据类型有:

text 表示纯文本

xml 表示

xml 数据

json 表示 json 对象

代码示例:


  
  1. // ajax请求
  2. $( "#ajaxBtn").click( function () {
  3. $.ajax({
  4. url: "http://localhost:8080/16_json_ajax_i18n/ajaxServlet",
  5. // data:"action=jQueryAjax",
  6. data: { action: "jQueryAjax"},
  7. type: "GET",
  8. success: function (data) {
  9. //alert("服务器返回的数据为:"+ data);
  10. //var jsonObj = JSON.parse(data);
  11. $( "#msg").html( " ajax 编号:" + data.id + ",姓名:" + data.name);
  12. },
  13. dataType: "json"
  14. });
  15. });

 

3.2、$.get 方法和$.post 方法

url 请求的 url 地址

data 发送的数据

callback 成功的回调函数

type 返回的数据类型

代码示例:


  
  1. // ajax--get请求
  2. $( "#getBtn").click( function () {
  3. $.get( "http://localhost:8080/16_json_ajax_i18n/ajaxServlet", "action=jQueryGet", function (data) {
  4. $( "#msg").html( " get 编号:" + data.id + ",姓名:" + data.name);
  5. }, "json");
  6. });
  7. // ajax--post请求
  8. $( "#postBtn").click( function () {
  9. // post请求
  10. $.post( "http://localhost:8080/16_json_ajax_i18n/ajaxServlet", "action=jQueryPost", function (data) {
  11. $( "#msg").html( " post 编号:" + data.id + ",姓名:" + data.name);
  12. }, "json");
  13. });

 

3.3、$.getJSON 方法

url 请求的 url 地址

data 发送给服务器的数据

callback 成功的回调函数

代码示例:


  
  1. // ajax--getJson请求
  2. $( "#getJSONBtn").click( function () {
  3. // 调用
  4. $.getJSON( "http://localhost:8080/16_json_ajax_i18n/ajaxServlet", "action=jQueryGetJson", function (data) {
  5. $( "#msg").html( " getJson 编号:" + data.id + ",姓名:" + data.name);
  6. })
  7. });

 

3.4、表单序列化 serialize()

serialize()可以把表单中所有表单项的内容都获取到,并以 name=value&name=value 的形式进行拼接。

代码示例:


  
  1. // ajax请求
  2. $( "#submit").click( function () {
  3. alert($( "#form01").serialize());
  4. // 把参数序列化
  5. $.getJSON( "http://localhost:8080/16_json_ajax_i18n/ajaxServlet", "action=jQuerySerialize&"+$( "#form01").serialize(), function (data) {
  6. $( "#msg").html( " Serialize 编号:" + data.id + ",姓名:" + data.name);
  7. });
  8. });


转载:https://blog.csdn.net/qq_41819988/article/details/105932991
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场