json介绍
什么是json字符串:
JSON( JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。
有什么特点:
(方便书写,阅读,占带宽小方便传输且方便计算机解析)
-
1 完全独立于编程语言的文本格式来存储和表示数据。
-
2 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
-
3 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
使用场景:
常用于前后端数据交换,前后端还可以通过(字符串,xml)等方式进行数据交互。
语法格式
[ele,ele]:表示集合
{name:value,name:value}:存放对象
集合和对象可嵌套使用,元素间用“,”隔开
访问遍历:
- JSON对象. 访问对象属性
- JSON对象[index] 访问数组元素
java对象和json转换案例
普通转换
Java对象与json对应关系
User ---->json
List ---->json
Map<String,List> ---->json
var data = {“user”,[{},{},{}]}
工具转换
(1)什么是json的转换工具
json的转换工具是通过java封装好的一些jar工具包,直接将java对象或集合转换成json格式的字符串。
(1)常见的转换工具
(1)使用步骤
- 添加jar(添加到WEB-INF目录下)
- 调用
(1)案例
前提:
-
bean类有无参构造方法
-
属性有set/get方法
注册时用户名验证
需求: 类似与126邮箱的提示功能
分析:
编写:
<%--
1,写前端界面
2,写ajax代码用于监听页面元素和处理返回
3,写serverlet代码用于处理逻辑
--%>
- login.jsp
<%--1,写前端代码--%>
<form method="post" action="${pageContext.request.contextPath}/register">
username: <input id="username" name="username" type="text"><br/>
<div id="msg"></div>
password: <input name="passowrd" type="password"><br/>
<input 。type="submit" value="注册"><br/>
</form>
-
login.jsp
<%--导入jQuery--%> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery/jquery-1.11.0.js"></script> <%--2,写ajax代码用于监听页面元素和处理返回--%> <script type="text/javascript"> //1,页面加载成功 $(function () { //2,获取输入框,添加焦点丢失事件 $("#username").on("blur", function () { //3,发送请求 $.ajax({ url: "ServletLogin", async: true, data: "username=" + $("#username").val(), type: "post", dataType: "json", success: function (data) { //4:根据服务端返回的json数据,编写显示逻辑 if (data.code == 0) { $("#msg").text(data.msg) $("#msg").css("color", "green") } else { $("#msg").text(data.msg) $("#msg").css("color", "red") } }, error: function () { alert("服务器发生了错误") } }); }) }) </script>
-
ServletLogin.java
// 3,写serverlet代码用于处理业务逻辑
@WebServlet("/ServletLogin")
public class ServletLogin extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1:接收请求获取参数
String username = request.getParameter("username");
//2:处理业务逻辑
Result result = new Result();
if("jack".equals(username)){
//2.1,返回已注册
result.setMsg("该邮箱地址已被注册");
result.setCode(1);
}else{
//2.2,返回未注册
result.setMsg("恭喜,该邮件地址可以注册");
result.setCode(0);
}
response.setContentType("text/html;charset=utf-8");
System.out.println(new ObjectMapper().writeValueAsString(result));
response.getWriter().println(new ObjectMapper().writeValueAsString(result));
}
}