目录
json是什么?
json就是有格式的字符串
轻量级数据交换格式,是完全独立与编程语言的文本格式,存储和表示数据的,是一种简洁和清晰的层次结构
简单理解:除了数据以外只有一些标点,并且还可能存在大量标签,样式,js代码
js对象与json对象的区别,js对象没有单引号,而json对象一绿到底,即有单引号
json字符串里面不允许有单引号,即单引号里面不能再有单引号,霸道
对 @ResponseBody的理解
作用本质:把java对象转成json对象
@ResponseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换成指定的格式,之后写到response对象的bady区中,通常用来返回json数据或者是xml数据。
注意,在使用此注解之后不会再走视图解析器,而是直接将数据写入到输入流中,等同于通过response对象输出指定格式的数据。
@ResponseBody是作用在方法上的,@ResponseBody表示该方法的返回结果直接写入HTTPresponse body中,一般在异步获取数据时使用,也就是【AJAX】
方法返回类型:
1、String和
ModelAndView 更多是用来相应html格式的内容,接收参数,Model(返回String)、
2、方法返回自定义类型,形参是自定义形参,接收参数
3、返回为void ,用来自定义相应,后面用的最多的是文件下载,主要形参会有哪些,HttpSerrvletResponse
处理对象可以对应哪些形参
Model:接收参数,Servlet API 如HttpServletRequest
HttpServletResponse HttpSession 具体定义哪些,看需求
AJAX
是什么?
不是一项具体的技术,而是几门技术的综合
同步:打电话就是同步的,要等待
异步:发短信就是异步的,不需要等待
AJAX请求
不会刷新页面,无法回退,因为刷新页面会导致页面输入的数据丢失,用户体验会变差。
http协议:
实时看数据库数据时,需要重新访问一次数据库,才能看到更新内容,浪费数据库查询性能,浪费服务器带宽(只要数据,不要菜单,传多了),降低用户体验
。
为了解决上述问题,用AJAX就能解决这个问题
(给刷新按钮绑定事件,点击发送AJAX请求-----》去数据库查询数据,相应JSON----》回调函数,把DoM数据相应页面(找元素加子元素))
get请求检查用户名是否存在
当用户输入完成,鼠标失去焦点时,发出AJAX请求,异步请求。
二级联动
英文:jquery-ajax-json-springmvc
关于pop.xml的更改
加入了jackson依赖:Jackson:在 Spring MVC 中内置支持她,速度也挺快,稳定性比较好。
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.6</version> </dependency>
Fastjson:阿里出品,号称是 Java 领域中转换 JSON 最快的一个插件,中文文档比较齐全。
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
关于json与js对象之间的转换
json本质是带有格式的字符串;
浏览器提供一个工具类JSON,里面提供了两个方法,便于jSON与JS对象之间的互相转换。
JSON字符串-->JS对象
console.log(JSON.parse(json1));
console.log(JSON.parse(json1).dept.name);
JS对象-->JSON字符串
console.log(JSON.Stringify(jsobj2));