Json、Ajax

一、JSON

定义:是一种轻量级的数据交换格式

JSON是JavaScript Object Notation缩写

作用:

使用ajax进行前后台数据交换

移动端与服务端的数据交换

JSON数据格式

  1. 对象格式:{"key1": obj1, "key2": obj2, "key3": obj3...}

  2. 数组/集合格式obj1, obj2, obj3...

注:JSON的key是字符串,JSON的value是Object

规则:

  1. 映射用冒号":"表示。//名称:值

  2. 并列的数据之间用逗号","分隔。//名称1:值1,名称2:值2

  3. 映射的集合(对象)用大括号"{}"表示。//{名称1:值1,名称2:值2}

  4. 并列数据的集合(数组)用方括号"\[\]"表示。

{名称1:值1,名称2:值2} {名称1:值1,名称2:值2}

  1. 元素可能具有的类型:string,number,object,array,true,false,null

JSON和XML比较

相比于XML,JSON的优势如下:

  1. 没有结束标签,长度更短,读写更快

  2. 能够直接被JavaScript解析器解析

  3. 可以使用数组

二、Ajax

ajax的最大特点是异步请求、不刷新整个页面,只刷新局部,也叫局部刷新。

同步与异步

同步现象:客户端发送请求到服务器端,当服务器返回响应前,客户端处于等待卡死状态

异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事,不会被卡死

Ajax运行原理

页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到服务器端,在这段时间里,客户端可以任意进行任何操作,直到服务器端将数据返回给Ajax引擎后,会触发设置好的事件,从而执行自定义的js逻辑代码完成某种页面功能。

JQuery的Ajax技术

$.get(url,data,callback,type) //后面三个是可选的,可以没有

$.post(url,data,callback,type)

其中:

url:代表请求的服务器端地址

data:代表请求服务器端的数据(可以是key=value形式,也可以是json格式)

callback:表示服务器端成功响应所有触发的函数

type:表示服务器返回的数据类型(jquery会根据指定的类型自动类型转换)

常用的返回类型:text、json、html等

$.ajax({option1:value1,option2:value2...});

语法:$.ajax({键值对});

常用的option如下:

async:是否异步,默认是true代表异步。(注:get/post方式只能异步,不能配置)

data:发送到服务器的参数,建议使用json格式

dataType:服务器返回的数据类型,常用text和json

success:成功响应执行的函数,对应的类型是function类型

type:请求方式,POST/GET

url:请求服务器端地址

三、JSON数据和Java对象相互转换

常见的JSON解析器:Jsonlib,Gson,fastjson,jackson(SpringMVC内置的解析器)

  1. 导入jackson的相关jar包

  2. 创建jackson核心对象ObjectMapper

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

3.1 JSON转为Java对象

readValue(json字符串数据,Class)

3.2 Java对象转换JSON

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

复杂java对象转换

  1. List:数组\[\]

  2. Map:对象格式一致 {}

四、前台向后台发送请求

  1. 超链接<a herf=""></a>

  2. form表单

  3. location.herf=""

4.ajax

相关推荐
東雪木6 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
Oll Correct6 小时前
实验二十九:TCP的运输连接管理
网络·笔记
飞翔中文网8 小时前
Java学习笔记之抽象类与接口(设计思想)
java·笔记·学习
爱滑雪的码农8 小时前
Java基础二十:JSON 数据解析、对象与 JSON 互转逻辑
json
智者知已应修善业8 小时前
【proteus设计文氏正弦波信号发生器】2023-5-9
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
凉、介10 小时前
深入理解 ARMv8-A|处理器模式与寄存器
笔记·学习·嵌入式·arm
whyTeaFo10 小时前
MIT 6.1810: Lec 5: calling conventions and stack frames RISC-V
笔记
上课不要睡觉了11 小时前
【统计法规】4.1统计管理体制概述
笔记·统计师考试
墨白曦煜12 小时前
算法实战笔记:剥开回溯算法的外衣——从通用模板到高阶去重(八)
笔记·算法
Upsy-Daisy12 小时前
IOTA 学习笔记(四):当前 IOTA 架构总览
笔记·学习·架构