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

相关推荐
AAA代码批发商3 分钟前
DAYS 38 TCP并发服务器模型详解
linux·网络·笔记·学习
启观川29 分钟前
Python基础-第 16 章 综合案例:客户信息管理系统
开发语言·笔记·python·正则表达式
WK100%1 小时前
LeetCode双题:滑动窗口破解最小子数组
c++·经验分享·笔记·算法
sheeta19981 小时前
LeetCode 每日一题笔记 日期:2026.09.02 题目:3875.构造奇偶一致的数组 I
笔记·算法·leetcode
风123456789~1 小时前
【架构专栏】4.7 信息安全的抗攻击技术 3/4
笔记·系统架构设计
tju新生代魔迷1 小时前
Verilog HDL 学习笔记(十二)| 第12章 用户自定义原语(UDP)
笔记·学习·udp
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis MyBatis 概述 阅读笔记 37
spring boot·笔记·mybatis
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis 整合 MyBatis 阅读笔记 38
spring boot·笔记·mybatis
数据狐(Datafox)3 小时前
mercadolibre.item_get 工程实战:美客多商品详情API技术解析与落地应用
java·人工智能·mysql·json
风123456789~3 小时前
【架构专栏】4.8 信息安全的保障体系与评估方法 4/4
笔记·系统架构设计