22 Ajax&Json

一、Ajax                                                                                                                              

    

    1.概念:

         ASynchronous JavaScript And XML    异步的JavaScript 和 XML    

    2.同步和异步

            1.同步

                客户端请求服务端,必须等待服务端响应过来数据,客户端才能做其他操作

            2.异步加载(Ajax)

                客户端请求服务端,不需要等到服务端响应到数据时,就可以做其他操作            

 

 

    3.实现方式                                                                                                                                            

            1.  $.ajxa()实现-------------------->可以设置同步或者异步加载

        

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.3.1.min.js"></script>

    <script>

        //定义方法

        function  fun() {

            //使用$.ajax()发送异步请求

            $.ajax({

                url:"ajaxServlet" , // 请求路径

                type:"POST" , //请求方式

                //data: "username=jack&age=23",//请求参数

                data:{"username":"jack","age":23},//一般是json格式

                success:function (data) {

                    alert(data);

                },//响应成功后的回调函数

                error:function () {

                    alert("出错啦...")

                },//表示如果请求响应出现错误,会执行的回调函数

                dataType:"json"//设置接受到的响应数据的格式

            });

        }

       

    </script>

</head>

<body>

    <input type="button" value="发送异步请求" onclick="fun();"/>

</body>

</html>

 

       

     2. $.get()----------------------------------->只能进行异步加载,不能同步加载

$.get("url",{"请求的参数名":"参数值","请求的参数名":"请求的参数值",...},function(data) {

 

 

 },"json");

    3.$.post()----------------------------------->只能进行异步加载,不能同步加载

$.post("url",{"请求的参数名":"参数值","请求的参数名":"请求的参数值",...},function(data) {

        

    

},"json");

 

二、json                                                                                                                                

    可以理解为:json就是一个js对象

    1. 基本规则                                                                                                                                            

        * 数据在名称/值对中:json数据是由键值对构成的

            * 键用引号(单双都行)引起来,也可以不使用引号

            * 值的取值类型:

                1. 数字(整数或浮点数)-------->注意:不需要引号

                2. 字符串(在双引号中)

                3. 逻辑值(true 或 false)------->注意:不需要引号

                4. 数组(在方括号中)        {"persons":[{},{}]}

                5. 对象(在花括号中)        {"address":{"province":"陕西"....}}

                6. null

        * 数据由逗号分隔:多个键值对由逗号分隔

 

        * 花括号保存对象:使用{}定义json 格式

        * 方括号保存数组:[]

 

    2.获取数据                                                                                                                                        

        1. json对象.键名

        2. json对象["键名"]

        3. 数组对象[索引]

 

 

        4.遍历获取

                       

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script>         

        //1.定义基本格式

        var person = {"name": "张三", age: 23, 'gender': true};

        var ps = [{"name": "张三", "age": 23, "gender": true},

            {"name": "李四", "age": 24, "gender": true},

            {"name": "王五", "age": 25, "gender": false}];

        //获取person对象中所有的键和值

        for (var key in person) {

            alert(key + "" + person[key]);

        }

        //获取ps中的所有的键和值

        for (var i = 0; i < ps.length; i++) {

            for (var key in ps[i]) {

                alert(key + ":" + ps[i][key]);

            }

        }

    </script>

</head>

<body>

</body>

</html>

 

3.json解析器                                                                                                                                            

jackson-Java对象转换JSON-----------------------------------------------------------------------------------------------------

    1. 转换方法ObjectMapper类的方法

                    * writeValue(参数1,obj):

                        参数1:

                            File:将obj对象转换为JSON字符串,并保存到指定的文件中

                            Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中

                            OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中

                    * writeValueAsString(obj):将对象转为json字符串

 

                2. 注解:

                    1. @JsonIgnore:排除属性。

                    2. @JsonFormat:属性值得格式化

                        * @JsonFormat(pattern = "yyyy-MM-dd")

jackson-Java对象转换JSON-----------------------------------------------------------------------------------------------------

 

 

jackson-JSON转为Java对象-----------------------------------------------------------------------------------------------------

        1. 导入jackson的相关jar包

        2. 创建Jackson核心对象 ObjectMapper

        3. 调用ObjectMapper的相关方法进行转换

            1. readValue(json字符串数据,Class)

jackson-JSON转为Java对象----------------------------------------------------------------------------------------------------

 

 

 

 

 

 1.常见的解析器:

        Jsonlib,Gson(谷歌),fastjson(阿里),jackson(springmvc)

    我们使用jackson

    jackson使用步骤:                                                                                                                                                            

        1.导入jackson的相关jar包(注意:导入以下三个

            

 

    2. 创建Jackson核心对象 ObjectMapper

    3. 调用ObjectMapper的相关方法进行转换    

            writeValueAsString(obj):将对象转为json字符串------>obj可以是java对象,list,map...

 

 

 

 

 

 

 

 

                                                          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值