JSON和AJAX

JSON

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

JSON在JavaScript的使用

json的两个常用的方法

                JSON.stringify()     json------------->字符串

                JSON.parse()        字符串------------>json对象

JSON和AJAX_第1张图片

 JSON在JavaBean中的使用(使用了GSON工具类)

    //JavaBean 与 Json的转换
    @Test
    public void test1(){
        Person p1 = new Person(12,"小明");
        Gson gson = new Gson();
        String str = gson.toJson(p1);
        System.out.println(str);//{"age":12,"name":"小明"}
        Person person = gson.fromJson(str, new TypeToken(){}.getType());
        System.out.println(person);//Person{age=12, name='小明'}
    }

    //List 和 JSON 的转换
    @Test
    public void test2(){
        Person p1 = new Person(12,"小明");
        Person p2 = new Person(15,"小红");
        ArrayList list = new ArrayList<>();
        list.add(p1);
        list.add(p2);
        Gson gson = new Gson();
        String str = gson.toJson(list);
        System.out.println(str);
        ArrayList personList = gson.fromJson(str,new TypeToken>(){}.getType());
        System.out.println(personList);
    }

    //JSON 与 Map的转换
    @Test
    public void test3(){
        Person p1 = new Person(12,"小明");
        Person p2 = new Person(15,"小红");
        HashMap map = new HashMap<>();
        map.put(1,p1);
        map.put(2,p2);
        Gson gson = new Gson();
        String str = gson.toJson(map);
        System.out.println(str);
        HashMap personHashMap = gson.fromJson(str,new TypeToken>(){}.getType());
        System.out.println(personHashMap);
    }

AJAX请求

JSON和AJAX_第2张图片

 原生JS AJAX请求的示例

         JSON和AJAX_第3张图片

 JQuery Ajax请求

$.ajax请求

JSON和AJAX_第4张图片

JSON和AJAX_第5张图片

 $.get $post方法


                    url                          请求的url地址
                   data                        发送的数据
                   callback                 成功的回调函数
                   type                        返回的数据类型

JSON和AJAX_第6张图片

 $.getJSON

JSON和AJAX_第7张图片

表单序列化

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

JSON和AJAX_第8张图片

 总代码:jsp页面

<%--
  Created by IntelliJ IDEA.
  User: surface
  Date: 2023/3/23
  Time: 20:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    原生js的ajax请求
    
    


    
    
div1
div2
div3
div4
div5
<%-- serialize()可以把表单中所有表单项的内容都获取到,并以name=value&name=value的形式进行拼接。--%>
div5:表单序列化

服务器中:servlet程序(使用了gson jar包)

@WebServlet("/ajaxServlet")
public class AjaxServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String hobby = req.getParameter("hobby");
        String address = req.getParameter("address");
        Person p1 = new Person(12,"小明",hobby,address);
        Gson gson = new Gson();
        String str = gson.toJson(p1);
        System.out.println(str);
        resp.setContentType("text/html; charset=UTF-8");//解决乱码问题在获取流之前
        resp.setStatus(200);
        resp.getWriter().write(str);
    }
}

你可能感兴趣的:(JavaWeb,json,ajax,前端)