AJAX && JSON

AJAX

概念

异步的JavaScript和XML,在无需加载整个页面的情况下,更新部分网页的技术

  • 异步和同步:客户端和服务器相互通信的基础上
    • 同步:客户端必须等待服务器的响应,在这期间不能做任何操作
    • 异步:客户端不需要等待服务器响应,在服务器处理请求的过程中,客户端可以做其他的操作
实现方式
  1. 原生的JS实现方式(了解)

  2. JQuery实现方式

    • $.ajax()

      $.ajax({
         url:"" //请求路径
         type:"" //请求方式 GET,POST
         data:{"":""}, //请求参数key:value形式
         success:function(){}, //响应成功后的回调函数
         error:function(){}, //响应出错的回调函数
         dataType:"text" //设置接收到的响应数据的格式
      });
    • $.get():发送get请求

      • 语法:$.get(url,[data],[callback],[type])
      • url:请求路径
      • data:请求参数
      • callback:回调函数
      • type:响应结果类型
    • $.post():发送post请求

      • 语法:$.post(url,[data],[callback],[type])
      • url:请求路径
      • data:请求参数
      • callback:回调函数
      • type:响应结果类型

JSON

概念

JavaScript Object Notation JavaScript对象表示法,存储和交换文本信息的语法,类似XML,比XML更小、更快、更容易解析

语法
  1. 基本规则

    • 数据由键值对构成,以冒号映射,键用引号引起来

    • 多个键值对由逗号分隔

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

    • 方括号保存数组:[ ]

    • 值的取值类型

      • 数字
      • 字符串
      • 逻辑值
      • 数组
      • 对象
      • null
      <script>
          //定义基本格式
          var person = {"name":"张三",age:23,"gender":true};
          //嵌套格式 {} --> []
          var person = {
              "persons": [{"name": "张三", age: 23, "gender": true},
                          {"name": "李四", age: 26, "gender": true},
                          {"name": "王五", age: 24, "gender": false}]
          };
          //嵌套格式 [] --> {}
          var ps = [{"name": "张三", age: 23, "gender": true},
              {"name": "李四", age: 26, "gender": true},
              {"name": "王五", age: 24, "gender": false}];
      </script>
  2. 获取数据

    • json对象.键名

    • json对象['键名']

    • 获取所有的键和值

      • for in 循环

        for(var key in JSON){
            alert(key+":"+JSON[key])
        }
  3. JSON与Java对象相互转换

    • Json解析器:
  • 常见解析器:Jsonlib、Jackson、Gson、Fastjson

  • Json --> Java

    • readValue(json字符串数据,class)

      • String json = "{\"name\":\"张三\",\"age\":23,\"gender\":\"男\"}";
        ObjectMapper objectMapper = new ObjectMapper();
        Person person = objectMapper.readValue(json, Person.class);
        System.out.println(person);
  • Java --> Json

    • 导入Jackson相关jar包

    • 创建Jackson核心对象 ObjectMapper

    • 调用ObjectMapper的相关方法

      • 转换方法:
            writeValue(参数1,obj)
                参数1:
                    File:将obj对象转换为JSON对象,并保存在指定文件中
                    Writer:将obj对象转换为JSON对象,并将json数据填充到字符输出流
                    OutputStream:填充到字符输出流中
            writeValueAsString(obj):将对象转换为json字符串
    • 注解:

      • @JsonIgnore:排除属性
      • @JsonFormat:属性值的格式化
      • JsonFormat(pattern = "yyyy-MM-dd")
    • 复杂的Java对象转换

      • List:数组
      • Map:对象格式一致
Last modification:September 17th, 2020 at 08:46 am
如果觉得我的文章对你有用,请随意赞赏