day1.2.5.json篇

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)使用步骤

  1. 添加jar(添加到WEB-INF目录下)
  2. 调用

(1)案例

前提:

  • bean类有无参构造方法

  • 属性有set/get方法

在这里插入图片描述

注册时用户名验证

需求: 类似与126邮箱的提示功能

在这里插入图片描述

分析:

在这里插入图片描述

编写:

<%--
    1,写前端界面
    2,写ajax代码用于监听页面元素和处理返回
    3,写serverlet代码用于处理逻辑
--%>
  1. 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>
  1. 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>
    
  2. 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));
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值