目录

一、Ajax

1、概述

2、通过 JQuery 实现Ajax

二、JSON

1、概述

2、JSON对象语法

3、JSON 数据和 Java 数据相互转换

一、Ajax

1、概述

Ajax(ASynchronous JavaScript And XML),即:异步的 JavaScript 和 XML。Ajax 是一种异步请求技术,它可以通过使用Javascript语言与服务器进行异步交互,传输少量的数据,使页面达到局部刷新的效果。

  • 同步:客户端发送一个请求后,必须等待服务器响应完成后才能进行下一次请求
  • 异步:客户端发送一个请求后,无需等待服务器响应完成后就可以进行下一次请求

2、通过 JQuery 实现Ajax

JQuery 有三种实现 Ajax 的方式:

  1. $.ajax(): $.ajax(url,type,data,success(resp,status,xhr),dataType)
  2. $.get(): $.get(url,data,success(resp,status,xhr),dataType)
  3. $.post():$.post(url,data,success(resp,status,xhr),dataType)
<!DOCTYPE HTML>
<html>
  <head>
    <title>Document</title>
    <script type="text/javascript" src="/js/jquery-3.6.1.js"></script>
    <script type="text/javascript">
        $(function(){
            $("#btn").click(function(){
                //$.ajax()方式
                $.ajax({
                    url:"AServlet",//请求路径
                    type:"GET",//请求方式
                    data:{"name":"张三"},//请求参数
                    dataType:"text",//响应数据类型
                    success:function(data){//响应成功后的回调函数
                        alert(data);
                    },
                    error:function () {//响应失败后的回调函数
                        alert("error!");
                    }
                });
                
                //$.get()方式
                $.get("AServlet",{name:"张三"},function (data) {
                    alert(data);
                },"text");
                
                //$.post()方式
                $.post("AServlet",{name:"张三"},function (data) {
                    alert(data);
                },"text");
            });
        });
    </script>
  </head>
  
  <body>
    <input type="button" value="发送AJAX" id="btn" />
  </body>
</html>

二、JSON

1、概述

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它相比于 xml 读写速度更快,更加简短,并且支持数组。

2、JSON对象语法

2.1 JSON 语法:

  • 数据以键值对构成
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

2.2 JSON值:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null
//基本格式
let person = {"name":"张三","age":18,"hobby":["run","swim"]};
alert(person.name + ", " + person.age + ", " + person.hobby);
//嵌套格式(对象数组)
let persons = [
    {"name":"张三","age":18,"hobby":["run","swim"]},
    {"name":"李四","age":19,"hobby":["run","swim"]},
    {"name":"王五","age":20,"hobby":["run","swim"]}
]
//嵌套格式(多个对象数组)
let persons2 = [
    persons:[
        {"name":"张三","age":18,"hobby":["run","swim"]},
        {"name":"李四","age":19,"hobby":["run","swim"]},
        {"name":"王五","age":20,"hobby":["run","swim"]}
    ]
]

3、JSON 数据和 Java 数据相互转换

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

fastjson的使用主要是三个对象:

  • JSON
  • JSONObject
  • JSONArray

JSON对象

常用方法:

T parseObject(String text, Class<T> clazz)  //把json转换为一个java对象
JSONObject parseObject(String text)    // 把json转换为一个JSONObject对象
List<T> parseArray(String text, Class<T> clazz)  //把json转换为一个List集合
JSONArray parseArray(String text)     //把json转换为一个JSONArray对象
String toJSONString(Object object) //把一个java对象转换为json格式的字符串

JSONObject

JSON对象(JSONObject)中的数据都是以key-value形式出现,所以它实现了Map接口:

常用方法:

ajax实例java代码 java实现ajax_JSON

JSONArray

JSONArray则是JSON数组,JSON数组对象中存储的是一个个JSON对象,所以类中的方法主要用于直接操作JSON对象

常用方法:

ajax实例java代码 java实现ajax_json_02

Person person = new Person("张三",18,);
//把java对象转换为json字符串
String json = JSON.toJSONString(person);
System.out.println(json);