Ajax笔记梳理-->json

1.jquery的get和post发放异步请求?
get:

语法: $.get(1.“请求路径”,2.处理响应数据的匿名函数,里面的形参就是服务器返回给客户端的值,3.响应数据的类型(默认是text))
post:

$.post(“1.请求路径”,“2.请求参数”,3.处理响应数据的匿名函数,相应数据的类型(默认是text))

jquery的ajax请求

属性名称 解释
url 请求的服务器端url地址
async (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false
data 发送到服务器的数据,可以是键值对形式,也可以是js对象形式
type (默认: “GET”) 请求方式 (“POST” 或 “GET”), 默认为 “GET”
dataType 预期的返回数据的类型,取值可以是 xml, html, script, json, text, _defaul等
success 请求成功后的回调函数
error 请求失败时调用此函数
//声明一个方法使用jQuery的ajax方法发送异步请求
function fn5() {
    $.ajax({
        url:"/demo01", //请求路径
        data:"username=lucy", //请求参数
        type:"POST", //请求方式
        success:function (result) {
            $("#msg").html(result)
        }, //请求成功时候的回调函数
        error:function () {
            $("#msg").html("服务器异常")
        } //请求失败时候的回调函数
    })
}

2.Json数据格式的表现
前端 :{key:value},


3.为什么要用Json,以及Json数据格式如何使用?

  • 在Ajax使用过程中,服务端返回的数据可能比较复杂,比如List;这些数据通常要转换成json格式,把json格式字符串返回客户端
  • 常见的转换工具有:
    • Jackson:SpringMVC内置的转换工具
    • jsonlib:Java提供的转换工具(一般不用)
    • gson:google提供的转换工具(轻量级的框架)
    • fastjson:Alibaba提供的转换工具(效率高速度快)
      fastjson链接:https://pan.baidu.com/s/17D1_OjSRDbge01Vb_ZoUJQ
      提取码:aio7

      jackson链接:https://pan.baidu.com/s/1L6izFuiaDFjyo3XbMHyolw
      提取码:2ytf

      jackson将Java对象转化为json字符串格式的核心方法
  • Jackson提供了转换的核心类:ObjectMapper
  • ObjectMapper的构造方法:无参构造
  • ObjectMapper的常用方法:
方法 说明
writeValueAsString(Object obj) 把obj对象里的数据转换成json格式

fastjson将Java对象转化为json字符串格式的核心方法

  • fastjson提供了核心类:JSON
  • JSON提供了一些常用的静态方法:
方法 说明
toJSONString(Object obj) 把obj对象里的数据转换成json格式

搜索案例


4.Json对象转化成java对象?
------------>jackson字符串转化为java对象

方法 功能
readValue(String json, Class type) 把json字符串,还原成type类型的Java对象
readValue(String json, TypeReference reference) 把json字符串,还原成带泛型的复杂Java对象(比如List)

1.调用JSON.parseObject(String json,Class clazz)

String jsonStr = "{\"id\":1,\"username\":\"zs\",\"password\":\"123456\",\"email\":\"[email protected]\",\"phone\":\"1386789898\"}";
        //1.调用JSON.parseObject(String json,Class clazz);
        //转换成user
        User user = JSON.parseObject(jsonStr, User.class);
        System.out.println(user);

2.使用jackson将json数组字符串转换成List

 String jsonStr = "[{\"id\":1,\"username\":\"zs\",\"password\":\"123456\",\"email\":\"[email protected]\",\"phone\":\"1386789898\"},{\"id\":2,\"username\":\"ls\",\"password\":\"123456\",\"email\":\"[email protected]\",\"phone\":\"1386781898\"},{\"id\":3,\"username\":\"ww\",\"password\":\"123456\",\"email\":\"[email protected]\",\"phone\":\"1386782898\"}]";

        //1.创建ObjectMapper对象
        ObjectMapper objectMapper = new ObjectMapper();

        //2.调用readValue()
        TypeReference<List<User>> ref = new TypeReference<List<User>>() {
        };
        List<User> list = objectMapper.readValue(jsonStr, ref);
        System.out.println(list);

------------>fastjson字符串转化为java对象

方法 功能
parseObject(String json, Class type) 把json字符串,还原成type类型的Java对象
parseArray(String json, Class type) 把json字符串,还原成List

1.使用fastjson将json字符串转换成JavaBean对象或者Map

   //把json转成JavaBean(user对象)
    public void test08() throws IOException {
        String jsonStr = "{\"id\":1,\"username\":\"zs\",\"password\":\"123456\",\"email\":\"[email protected]\",\"phone\":\"1386789898\"}";

        //1.调用JSON.parseObject(String json,Class clazz);
        User user = JSON.parseObject(jsonStr, User.class);
        System.out.println(user);

2.//使用fastjson将json数组的字符串,转换成List

 String jsonArr = "[{\"id\":1,\"username\":\"奥巴马\",\"password\":\"123456\",\"email\":\"[email protected]\",\"phone\":\"18999999999\"},{\"id\":2,\"username\":\"周杰棍\",\"password\":\"654321\",\"email\":\"[email protected]\",\"phone\":\"18666666666\"},{\"id\":3,\"username\":\"王丽红\",\"password\":\"777777\",\"email\":\"[email protected]\",\"phone\":\"18777777777\"}]";

    List<User> userList = JSON.parseArray(jsonArr, User.class);

    for (User user : userList) {
        System.out.println(user.getUsername());
    }
}

你可能感兴趣的:(ajax,开发语言,ajax)