ajax,json学习笔记(三)JSON和jquery实现ajax

利用JSON实现前后台数据交互,且方便

1、基本概念

    1) JSON(JavaScript Object Notation):javaScript对象表示方法
    2) 是存储和交换文本信息的语法,类似xml,采用键值对的方式来组织
    3) JSON是独立于语言的,任何语言按json规则就能解析json
    4)优点
        长度比xml短,读写速度快,可以用javaScript内建的方法直接解析转换成javascript对像
    

2、JSON 语法规则

    1)JSON 数据书写格式:名称/值 对
        名称和值在双引号中,例如:"name":"马玉"
    2)JSON值可以使数字、字符串、逻辑值、数组(在[]中)、对象(在{}中)、null

    例子
    {
            "people": [
            {    
            "name": "郭靖",
                    "age": "12"
            },
            {
                    "name": "黄蓉",
                    "age": "12"
            }]
    }

3、JSON 解析

    1)方法:eval 和 JSON.parse
        注意:eval执行第三方JSON数据危险(可能有恶意代码),会执行json字符串中的js方法
        JSON.parse()除了解析字符串还可以捕捉JSON中语法错误
    eval:       <script>
                    var jsondata =     '{"people": [{"name": "郭靖","age": "12"},{"name": "黄蓉","age": "12"}]}';
                    var dataObj=eval("("+jsondata+")");
                    alert(dataObj.people[0].name)
               </script>
    JSON.parse:    <script>
                 var jsondata = '{"people": [{"name": "郭靖","age": "12"},{"name": "黄蓉","age": "12"}]}';
                       var dataObj=JSON.parse(jsondata);
                    alert(dataObj.people[0].name)
            </script>
    2)JSON校验工具:http://json.parser.online.fr/

4、约定JSON

    {
        "success":true,
        "msg":"xxx"
    }
    后台通过写成json字符串或者JSONArray.toJSON(Object)等方法把对象转化为json格式数据传到前台,前台js对其进行解析展示

5、 springmvc处理ajax请求

参考:https://www.cnblogs.com/tingbogiu/p/5796199.html

例子
后台: // ajax不用返回页面返回值为void
    @RequestMapping("/jQUeryTest")
    public void jQUeryTest(HttpServletRequest request, HttpServletResponse response){
        List<Category> cs= categoryService.list();
        // 把列表转为json数组,ModelAndView是直接把列表转为json格式
        String jsonResult = JSON.toJSONString(cs);
        renderData(response, jsonResult);
    }

        
    private void renderData(HttpServletResponse response, String data) {
        response.setCharacterEncoding("UTF-8");
        PrintWriter printWriter = null;
        try {
            printWriter = response.getWriter();
            printWriter.print(data);
        } catch (IOException ex) {
            System.out.println(ex);
        } finally {
            if (null != printWriter) {
                printWriter.flush();
                printWriter.close();
            }
        }
      }
页面:$(document).ready(function(){
        $("#test3").click (function(){
            $.ajax({
                type:'POST',
                url:'http://localhost:8080/MyFirstSSM/jQUeryTest',
                data: {
                 },
                dataType:'json',
                success:function(data){    //已经解析
                    $("#test4").text("第1个用户:"+data[0].name);
                },
                error:function(jqXHR){
                    alert('发生错误:'+jqXHR.status);
                }
            });
        });
    });

6、jquery实现ajax

jQuery.ajax([settings])
    通过设置值来完成ajax请求
1、常用设置
    1)type:请求类型,‘post'或‘get',默认’get'
    2)url:发送请求的地址
    3)data:一个对象,连同请求发送到服务器中的数据
    4)dataType:预期服务器返回的数据类型,如果不指定,jQuery自动根据HTTP包MIME信息智能判断,一般采用JSON,设置为'json'
    5) success:是一个方法,请求成功后的回调函数,传入返回后的数据,以及包含成功代码的字符串
    6)error:是一个方法,请求失败调用的函数,传入XMLHttpRequest对象
例子
        $("#test3").click (function(){
            $.ajax({
                type:'get',
                url:'http://localhost:8080/MyFirstSSM/listCategory',
                dataType:'json',
                success:function(data){    //已经解析过了字符串
                    $("#test4").text("第2个用户:"+data[1].name);
                },
                error:function(jqXHR){
                    alert('发生错误:'+jqXHR.status);
                }
            });
        });
    



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值