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

相关推荐
前进的李工2 小时前
Agent 学习笔记 02:Harness 与工作流怎么理解
笔记·学习·agent·工作流·harness
海鸥-w4 小时前
数据库冗余字段设计笔记
java·数据库·笔记·oracle
滴啦嘟啦哒4 小时前
【具身笔记】【原理探究】一、对PI05源码的实践笔记
笔记·python·vla·具身
览讯冷却6 小时前
冷却塔噪声的健康危害与法规要求的技术梳理
经验分享·笔记·科技·其他·百度·制造·业界资讯
Dory_Youth6 小时前
电脑的搜索功能不能用,一搜就黑屏闪退
运维·笔记
AI 编程助手GPT7 小时前
用 jq 清洗订单 JSON:先隔离异常,再统计已支付金额
json·jq
bessyon7 小时前
信息熵减与医疗交付:以3D检测与设备溯源为例
笔记
comyccccc8 小时前
STM32F407VET6核心板的部分电路绘制学习笔记
笔记·stm32·学习
qq_340040889 小时前
idea2021版,vue项目的package.json不展示scripts的绿色箭头
javascript·vue.js·json
叼烟扛炮9 小时前
Linux 学习笔记(三十六):并发进阶——读写锁 vs 自旋锁,到底怎么选?
linux·运维·服务器·笔记·学习