Ajax&JSON基础

AJAX:

1.概念:ASynchronous JavaScript And Xml 异步js和xml
    1.异步和同步:客户端和服务器相互通信的基础上
        同步:客户端必须等待服务器端的响应。等待期间,客户端不能做其他事情
        异步:客户端不需要等待服务器端的响应,在服务器处理请求的
            过程中,客户端可以进行其他的操作
        作用:无需重新加载整个网页的情况下,能够更新部分网页的技术
            通过在后台与服务器进行少量数据交换,
            Ajax 可以使网页实现异步更新。
            这意味着可以在不重新加载整个网页的情况下,
            对网页的某部分进行更新。
        优点:与传统的同步更新网页技术相比,提升了用户体验

2.实现方式:
    1.原生的JS实现(了解)
    2.JQuery实现
        1.$.ajax()
            语法:$.ajax(url, [settings])
            // 使用$.ajax()发送异步请求
            $.ajax({
                url: "ajaxServlet",  // 请求路径
                type: "post",  // 请求方式
                // 请求参数写法一
                // data: "username=jack&age=23",
                // 请求参数写法二(推荐)
                data: {"username":"jack", "age":12},
                success: function(data) {  // 响应成功后的回调函数
                    alert(data);
                },
                error: function() {  // 表示如果请求出现错误,执行的回调
                },
                dataType: "text"  // 设置接收到的响应数据的格式
            });
        2.$.get():get请求
          $.post():post请求

            语法:$.get(url,[data],[callback],[type])
            参数:
                url 请求路径
                data 请求参数
                callback 回调函数
                type 响应结果类型
            $.get("ajaxServlet",
                {username: "rose"},
                function (data) {
                    alert(data)
                }, "text"
            );

JSON:

1.概念:JavaScript Object Notation js对象表示法
    JavaObject:
        Person p = new Person();
        p.setName("大宝贝");

    JSObject
    var p = {"name": "大宝贝", "gender": "男", "age": 23}

    用途:json现在多用于存储和交换文本信息的语法
    作用:用于数据的传输
    优点:比XML更小,更快,更易解析

2.语法:
    1.基本规则
        数据在名称/值对中:json由键值对构成
            键用引号(单双都可),也可不用
            值取值类型:
                数字(整数或浮点数)
                字符串(在双引号中)
                布尔值
                数组(方括号) {"persons": [{}, {}]}
                对象(花括号) {"address": {"province": "陕西", ...}}
                null
        数据由逗号分隔:多个键值对由逗号分隔
        花括号保存对象:使用{}定义json格式
        方括号保存数组:[]

        嵌套格式一
            var persons = {
                "persons":
                    [{"name": "张三", "age": 23, "gender": true},
                    {"name": "李四", "age": 23, "gender": true},
                    {"name": "王五", "age": 23, "gender": false}]
        嵌套格式二
            var ps = [{"name": "张三", "age": 23, "gender": true},
                {"name": "李四", "age": 23, "gender": true},
                {"name": "王五", "age": 23, "gender": false}]
    2.获取数据
        1.json对象.键名
        2.json对象["键名"]
        3.数组对象[索引]
        4.遍历json数据
            // 1.基本格式json遍历
            var person = {"name": "张三", age: 23, 'gender': true};
            // 获取person对象中所有的键值
            for (var key in person) {
                alert(key + ":" + person[key]);
            }

            // 2.数组形式json遍历
            var ps = [{"name": "张三", "age": 23, "gender": true},
                {"name": "李四", "age": 24, "gender": true},
                {"name": "王五", "age": 25, "gender": false}]
            for (var i = 0; i < ps.length; i++) {
                var p = ps[i];
                for (var key in p) {
                    alert(key + ":" + p[key]);
                }
            }

3.JSON数据和Java对象的相互转换
    JSON解析器:
        常见解析器:jsonlib Gson fastjson jackson(springmvc内置)
    1.json->java
        1.使用步骤:
            1.导入jackson的jar包
            2.创建jackson核心对象 objectMapper
            3.调用objectMapper的相关方法进行转换
                1.readValue(json字符串数据, Class)
                
                // 1.初始化JSON字符串
                String json = "{\"name\":\"张三\",\"age\":23,\"gender\":\"男\",\"birthday\":\"2021-03-30 04:56\"}";
                // 2.创建ObjectMapper
                ObjectMapper mapper = new ObjectMapper();
                Person person = mapper.readValue(json, Person.class);
                System.out.println(person);
    2.java->json
        1.使用步骤:
            1.导入jackson的jar包
            2.创建jackson核心对象 objectMapper
            3.调用objectMapper的相关方法进行转换

            // 1.创建Person对象
            Person p = new Person();
            p.setName("张三");
            p.setAge(23);
            p.setGender("男");

            // 2.创建jackson核心对象,ObjectMapper
            ObjectMapper mapper = new ObjectMapper();
            // 3.转换
            /**
             * 转换相关方法
             *  writeValue(参数1, obj):
             *      参数1:
             *          File:将obj对象转换为JSON字符串,保存到指定的文件中
             *          Writer:将obj对象转换为JSON字符串,并将JSON数据填充到字符输出流关联的目的地(文件/网络)
             *          outputStream:将obj对象转换为JSON字符串,并将JSON数据填充到字节输出流关联的目的地(文件/网络)
             *  writeValueAsString(obj):
             *      将对象转为json字符串
             */
            String s = mapper.writeValueAsString(p);
            System.out.println(s);

    注解使用:
        1.@JsonIgnore:排除属性
        2.@JsonFormat:属性值的格式化
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
            private Date birthday;

    复杂java对象的转换
        1.List--> [{}, {}, {}]
        2.Map--> {}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值