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

相关推荐
吴声子夜歌32 分钟前
Node.js——JSON-Server轻量级RESTful API
node.js·json·restful·json-server
二哈赛车手1 小时前
新人笔记---ES和kibana启动问题以及一些常用的linux的错误排查方法,以及ES,数据库泄密解决方案[超详细]
java·linux·数据库·spring boot·笔记·elasticsearch
幸福巡礼1 小时前
【LangChain 1.2 实战(一)】 概述
笔记·学习·langchain
观无1 小时前
MAUI笔记
笔记
Hello_Embed1 小时前
Windows 安装 Claude Code 并接入 模型
windows·笔记·ai编程
大Mod_abfun2 小时前
数字媒体艺术概论(课堂作业/笔记)
笔记·媒体
笑鸿的学习笔记2 小时前
qt-C++语法笔记之Qt Graphics View 框架中的类型辨析完全指南
c++·笔记·qt
U盘失踪了3 小时前
调用大模型API上下文关联
笔记
sakiko_3 小时前
UIKit学习笔记3-布局、滚动视图、隐藏或显示视图
前端·笔记·学习·objective-c·swift·uikit
koo3643 小时前
周报5.3
笔记