json:javascript object notation,js对象表示法
作用:用于存储和交换文本信息
特点:
- 速度快
- 内存占用小
- 易于解析
json 数据使用键值对进行存储
键:是字符串,用单(双)引号括起来
值:
- 数值,例如:3、-3.6
- 字符串,例如:“abc”、“张三”
- 布尔值
- json数组
- json对象
- null
{ "name": "张三", "age": 80, "sex": false, "score": null, "cars": ["宝马", "法拉利", "奔驰"], "children": [{ "name": "李逵", "age": 20, "sex": "男" }, { "name": "张飞", "age": 21, "sex": "女" }, { "name": "刘备", "age": 20, "sex": "女" } ] }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
json 数据的获取方式:
- json对象.键
- json对象[“键”]
- json数组[索引]
json的循环方式:除了使用普通for循环,还可以使用如下方式:
for(var t in 数据源)
- 1
注:使用以上循环遍历json时,如果遍历的数据源是json数组,那么t是下标;如果遍历的数据源是json对象,那么t是对象中的键(获取的键是字符串类型的)
步骤:
- 准备工作,引入依赖
<dependencies> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.9</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.9</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.9</version> </dependency> </dependencies>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
创建jackson的核心对象ObjectMapper
ObjectMapper mapper = new ObjectMapper();
- 1
执行转换
java对象转换成json数据
mapper.writeValueAsString(Object o); mapper.writeValue(File f,Object o); mapper.writeValue(OutputStream os,Object o); mapper.writeValue(Writer w,Object o);
- 1
- 2
- 3
- 4
json数据转换成java对象
mapper.readValue(String json,Class c); mapper.readValue(File f,Class c); mapper.readValue(OutputStream os,Class c); mapper.readValue(Writer w,Class c);
- 1
- 2
- 3
- 4
jQuery是一个前端框架,用于简化js的开发
jQuery的设计宗旨“write less do more”,提倡用更少的代码写出更多的功能。它封装了js常用的功能,优化了html文档的操作、事件处理、动画和AJAX交互。
jQuery本质上就是一个 js 文件。
- 下载,jQuery文件,https://www.jq22.com/jquery-info122
注:任何一个版本的jQuery文件都有带有min和不带min的版本
jquery-xxx.js:开发版,给程序员看的,其中有良好的代码缩进和注释,体积更大
jquery-xxx.min.js:生产版,开发中使用的,没有缩进和注释,体积小
- 在页面中引入jQuery
<script type="text/javascript" src="js/jquery-3.3.1.min.js"> </script>
- 1
- 2
js -> jQuery
$(js对象)
- 1
jQuery -> js
方式1: jQuery对象[索引] 方式2: jQuery对象.get(索引)
- 1
- 2
- 3
- 4
注:jQuery对象不能调用js的属性和方法;js对象不能调用jQuery的属性和方法
入口函数
// 方式1 $(document).ready(function(){ }) // 方式2 $().ready(function(){ }) // 方式3 $(function(){ })
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
样式设置
jQuery对象.css("样式名","样式值"); $btn.css("background","red").css("color","yellow").css("border","2px solid black"); $btn.css({"background":"blue","color":"red","font-weight":"bold"});
- 1
- 2
- 3
- 4
事件绑定
jQuery对象.事件1(function(){ }).事件2(function(){ })
- 1
- 2
- 3
- 4
- 5
元素选择器
$("标签名")
- 1
id选择器
$("#id值")
- 1
类选择器
$(".class值")
- 1
并集选择器
$("选择器1,选择器2,...")
- 1
通配符选择器
$("*")
- 1
子代选择器
$("选择器1 > 选择器2")
- 1
后代选择器
$("选择器1 选择器2")
- 1
形式1:
$("选择器[属性名]")
- 1
形式2:
$("选择器[属性名='属性值']")
- 1
形式3:
$("选择器[属性名='属性值'][属性名='属性值']...")
- 1
首元素选择器
$("选择器:first")
- 1
尾元素选择器
$("选择器:last")
- 1
非元素选择器
$("选择器:not(选择器)")
- 1
奇数选择器
$("选择器:odd")
- 1
偶数选择器
$("选择器:even")
- 1
等于索引选择器
$("选择器:eq(index)")
- 1
大于索引选择器
$("选择器:gt(index)")
- 1
小于索引选择器
$("选择器:lt(index)")
- 1
- text():获取/设置元素标签体内的内容
- html():获取/设置元素标签体内的html结构
- val():获取/设置value的属性值
注:
- 方法中不写参数,表示获取
- 方法中写参数,表示设置
- 通用属性操作
- attr():获取/设置属性
- removeAttr():移除属性
- prop():获取/设置属性
- removeProp():移除属性
注:
- attr()方法可以对元素的固有属性进行操作,也可以对自定义的属性进行操作;
- prop()方法只能对元素的固有属性进行操作
- class属性操作
- addClass():添加class属性值
- removeClass():移除class属性
- toggleClass():切换class属性
- a.append(b):将b作为a的最后一个子元素
- a.prepend(b):将b作为a的第一个子元素
- a.appendTo(b):将a作为b的最后一个子元素
- a.prependTo(b):将a作为b的第一个子元素
- a.insertAfter(b):将a移动到b之后
- a.insertBefore(b):将a移动到b之前
- a.after(b):将b移动到a之后
- a.before(b):将b移动到a之前
创建元素节点(标签):
$(标签名) 例如:创建一个超链接 $("<a href='http://www.baidu.com'>百度</a>")
- 1
- 2
- 3
a.remove():移除a元素
a.empty():清空a元素标签体中的内容,保留自身
$(选择器).事件(function(){ })
- 1
- 2
举例:
// 为一个id是btn的按钮赋予点击事件 $("#btn").click(function(){ })
- 1
- 2
- 3
$(选择器).on("事件",function(){ })
- 1
- 2
举例:
// 为一个id是btn的按钮赋予鼠标移入事件 $("#btn").on("mouseover",function(){ })
- 1
- 2
- 3
$(选择器).off("事件")
- 1
举例:
// 取消id为btn按钮的鼠标移入事件 $("#btn").off("mouseover")
- 1
- 2
// 方式1 $.each(容器,function(变量名){ }) // 方式2 jQuery对象.each(function(变量名){ })
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
注:
- 以上两种方法的匿名函数中必须定义形参,该形参是每一个元素下标
- jQuery中不能使用break和continue,要使用
return false
代替break、return true
代替continue
Asynchronous JavaScript And Xml,异步的js和xml
同步:客户端向服务器发送请求后,必须等待服务器的响应,只有在服务器响应后,客户端才能执行其他操作
异步:客户端向服务器发送请求后,客户端不需要等待服务器的响应,就可以继续操作
作用:异步请求,局部刷新
AJAX是一种无需加载整个页面,就可以更新页面中部分内容的技术,提高了用户体验
创建执行异步请求的核心对象
XMLHttpRequest
var xmlhttp; if(window.XMLHttpRequest){ // true,说明当前浏览器是高版本的浏览器,内建XMLHttpRequest对象 // Chrome、Firefox、IE7+ 等 xmlhttp = new XMLHttpRequest(); }else{ // false,说明当前浏览器是老版本的浏览器,没有内建XMLHttpRequest对象,需要创建ActiveXObject xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
建立连接
xmlhttp.open(参数1,参数2,参数3);
- 1
参数:
- 提交方式:get、post
- 请求的地址
- 是否使用异步:true(使用异步)、false(不使用异步)
发送请求
xmlhttp.send();
- 1
注:
get请求,提交的数据必须拼接在请求的地址之后,并且send()方法的参数必须为空
post请求,提交的数据要写在send()方法的参数中,并且在发送请求前,必须先添加如下语句:`
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- 1
接收服务器响应回来的数据
xmlhttp.onreadystatechange = function(){ if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ // } } // 当服务器的响应状态为4,也就是请求已经完成并且服务器的响应已就绪;以及响应状态为200时,才能获取服务器响应回来的数据
- 1
- 2
- 3
- 4
- 5
- 6
通过
xmlhttp.responseText
可以获取服务器响应回来的数据
$.get(参数1,参数2,参数3,参数4):以get提交方式实现ajax
- 1
$.post(参数1,参数2,参数3,参数4):以post提交方式实现ajax
- 1
参数:
- 请求的地址
- 提交的数据(json)
- 服务器响应后执行的功能,用于接收服务器响应的数据,函数的参数就是接收到的响应的数据
- 接收到的服务器响应数据的类型,取值:json、text
$.ajax({ url:请求的地址, data:提交的数据(json), success:function(d){ }, dataType:接收数据的类型 type:提交方式,get/post })
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9