文章目录
1. JSON对象和java对象的相互转换1.1 使用步骤:1.2 注解:1.3 复杂java对象转换
2.案例:代码实现:效果
1. JSON对象和java对象的相互转换
1.1 使用步骤:
导入jackson的相关jar包创建Jackson核心对象 ObjectMapper调用ObjectMapper的相关方法进行转换 转换方法: writeValue(参数1,obj):
参数
1:
File:将obj对象转换为JSON字符串,并保存到指定的文件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
**writeValueAsString(obj):将对象转为json字符串**
1.2 注解:
@JsonIgnore:排除属性。@JsonFormat:属性值得格式化 * @JsonFormat(pattern = “yyyy-MM-dd”)
1.3 复杂java对象转换
List:数组Map:对象格式一致
2.案例:
* 校验用户名是否存在
1. 服务器响应的数据,在客户端使用时,要想当做json数据格式使用。有两种解决方案:
1. $.get(type):将最后一个参数type指定为"json"
2. 在服务器端设置MIME类型
response.setContentType("application/json;charset=utf-8");
代码实现:
package cn
.dhl
.web
.servlet
;
import com
.fasterxml
.jackson
.databind
.ObjectMapper
;
import javax
.servlet
.ServletException
;
import javax
.servlet
.annotation
.WebServlet
;
import javax
.servlet
.http
.HttpServlet
;
import javax
.servlet
.http
.HttpServletRequest
;
import javax
.servlet
.http
.HttpServletResponse
;
import java
.io
.IOException
;
import java
.util
.HashMap
;
import java
.util
.Map
;
@WebServlet("/findUserServlet")
public class FindUserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request
, HttpServletResponse response
) throws ServletException
, IOException
{
String username
= request
.getParameter("username");
response
.setContentType("application/json;charset=utf-8");
Map
<String,Object> map
= new HashMap<String,Object>();
if("tom".equals(username
)){
map
.put("userExsit",true);
map
.put("msg","此用户名太受欢迎,请更换一个");
}else{
map
.put("userExsit",false);
map
.put("msg","用户名可用");
}
ObjectMapper mapper
= new ObjectMapper();
mapper
.writeValue(response
.getWriter(),map
);
}
protected void doGet(HttpServletRequest request
, HttpServletResponse response
) throws ServletException
, IOException
{
this.doPost(request
, response
);
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面
</title>
<script src="js/jquery-3.3.1.min.js"></script>
<script>
$(function () {
$("#username").blur(function () {
var username = $(this).val();
$.get("findUserServlet",{username:username},function (data) {
var span = $("#s_username");
if(data.userExsit){
span.css("color","red");
span.html(data.msg);
}else{
span.css("color","green");
span.html(data.msg);
}
});
});
});
</script>
</head>
<body>
<form>
<input type="text" id="username" name="username" placeholder="请输入用户名">
<span id="s_username"></span>
<br>
<input type="password" name="password" placeholder="请输入密码"><br>
<input type="submit" value="注册"><br>
</form>
</body>
</html>
效果