1.JSON的引入
Ajax向后端传递数据时,通过人为定义的数据格式往往涉及到一些字符串的切割,而这种切割是人为规定的,使用过程中会出现规定字符的切个问题。
因此,引入JSON,JOSN(JavaScript Object Notation)专门为前后端分离而制作的一种标准的结构化数据格式
2.JSON格式
- 字符串
“xxx” - 数组
[ “xxx”,“hhh”,“ddd”] - 对象
{
“key1” : “value1” ,
“key2” : “value2”
}
以上格式为标准格式,不需要我们在进行人为地拼接,许多第三方已经写好了拼接JSON格式的,我们选择一种添加对应依赖即可。
同时ContentType也有专用的JSON格式
在数据传输流程中,JSON是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以JSON对象和JSON字符串之间的相互转换是关键
- 将 JSON对象 转化为 JSON字符串 称为 序列化 的过程
- 将 JSON字符串 转化为 JSON对象 称为 反序列化 的过程
1.序列化——后端
需要使用到ObjectMapper,以及其下的方法 writeValueAsString() 和writerWithDefaultPrettyPrinter()
//将List类型的对象messageList 序列化 为 字符串
ObjectMapper objectMapper=new ObjectMapper();
String s=objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(messageList);
//稍微带有美化的输出
String s=objectMapper.writeValueAsString(messageList);//普通输出
System.out.println(s);
2.反序列化——前端
利用 JSON.parse() 将 将 JSON字符串 转化为 JSON对象
var text=xhr2.responseText; //拿到 响应的响应体信息,响应正文
var messageList=JSON.parse(text);
for (var message of messageList) {
var html="<tr><td>"+message.who+"</td><td>"+message.target+"</td><td>"+message.what+"</td></tr>"
tbody1.innerHTML =tbody1.innerHTML+html;
}
Ajax中JSON反序列化的应用总结