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

本文介绍JSON的基本概念及其在前后台数据交互中的应用,包括JSON的语法规则、解析方法及如何使用SpringMVC处理AJAX请求等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用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);
                }
            });
        });
    



1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值