1.1简介
1.11 JSON的定义
JSON(Javascript Object Notation)是一种轻量级的数据交换格式,是一种存储数据的方式。
1.12 JSON的作用
- JSON是用来在客户端和服务器端转换数据用的。
- JSON的键值对格式容易让js解析。
- JSON的键值对格式可以在ajax返回函数中被转换或解析。
1.13 为什么使用JSON
独立于任何语言
易于人阅读和理解
便于机器的解析和生成
1.14 JSON语法
[
{"name":"zsan","pwd":616},
{"name":"lisi","pwd":313},
{"name":"wwu","pwd":432},
{"name":"zliu","pwd":389}
]
1.2 Fastjson
Fastjson是一个Java库,可以将Java对象转换为JSON格式,也可以将JSON字符串转换为Java对象
1) maven中添加依赖
com.alibaba fastjson1.2.62
2)Java对象转换为JSON格式
String json = JSON.toJSonString(Object obj);
3)JSON转换成java对象和list集合的区别
//转换成Java对象 Fruit fruit = JSON.parseObject(json1, Fruit.class); //转换成list集合 Listlist2 = JSON.parseArray(json2, Fruit.class);
JSON.parseObject(json1, Fruit.class) :
第一个参数:JSON文本
第二个参数:Class
将json1按照clazz反序列化成clazz对象
1.2 Fastjson API
| Object | parse(String text) 把JSON文本解析成JSONObject或者JSONArray |
| JSONObject | parseObject(String text) 把JSON文本解析成JSONObject |
| | parseObject(String text,Class 把JSON文本按clazz解析成clazz类型 |
| JSONArray | parseArray(String text) 把JSON文本解析成JSONArray |
| | parseArray(String text,Class 把JSON文本解析成clazz类型集合 |
| String | toJSonString(Object object) 把object序列化成JSON文本 |
1.21 什么是Java序列化和反序列化
- 序列化就是把对象改成二进制的过程,可以保存到磁盘或者网络发送
- 在编程语言的世界中,常常有这样的需求,我们需要将本地已经实例化的某个对象,通过网络传递到其他机器当中。为了满足这种需求,就有了所谓的序列化和反序列化。
- 所谓序列化,就是指将内存中的某个对象压缩成字节流的形式;而反序列化,则是将字节流转化成内存中的对象。
JSON中的序列化:
通过toJSonString(Object object)将Java对象序列化成JSON格式文本
1.3 Servlet设置支持前端的跨域请求
当我们将前后端分离时,就会涉及到跨域请求的问题
html页面通过ajax访问serlvet会出现以下错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
百度翻译:请求的资源上不存在“Access Control Allow Origin”标头。
这时就需要在后端的接口中,即servlet中进行相应的配置
public class FruitServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置跨域访问
//允许跨域的主机地址
response.setHeader("Access-Control-Allow-Origin", "*");
//允许跨域的请求方法GET, POST, HEAD 等
response.setHeader("Access-Control-Allow-Methods", "*");
//重新预检验跨域的缓存时间 (s)
response.setHeader("Access-Control-Max-Age", "4200");
//允许跨域的请求头
response.setHeader("Access-Control-Allow-Headers", "*");
//是否携带cookie
response.setHeader("Access-Control-Allow-Credentials", "true");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}



