json + ajax整理

什么是json

在这里插入图片描述

与xml的比较

在这里插入图片描述
语法格式:
在这里插入图片描述

json就相当于后端的对象调用toString()方法,是js对象的字符串表示法,json和js的互转用的是JSON.parse()和JSON.stringify()方法;

stringify(死君个fai)
在这里插入图片描述

案例:
在这里插入图片描述
输出:在这里插入图片描述

前后端分离,数据交互变得异常重要,json就是其中的王者

使用controller返回json数据

先导依赖
在这里插入图片描述
因为加了responsebody注解所以不会返回到视图解析器

对象转json,使用对象映射器类

new ObjectMapper().writeValueAsString(user)

在这里插入图片描述
把项目放到tomcat
在这里插入图片描述
发现问题,乱码
在这里插入图片描述
@requestmapping加一个参数produces设置编码以及返回类型
在这里插入图片描述

然后每次都需要这么配置比较麻烦,可以去配置文件一劳永逸
json格式乱码处理方式
在这里插入图片描述

示例3:在配置了之后传一个集合对象
在这里插入图片描述
在这里插入图片描述

返回时间日期

不设置会返回时间戳字符串
在这里插入图片描述
设置一下,可以提取工具方法
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

AJAX

在这里插入图片描述
增强B/S端的体验性
B/S:未来的主游,还会爆发式增长
在这里插入图片描述

在这里插入图片描述

示例:伪造的ajax
在这里插入图片描述
在这里插入图片描述

运行:
在这里插入图片描述

我们不用原生的底层XMLHttpRequest,直接用jquery提供的ajax有关方法
在这里插入图片描述

放在静态资源下
在这里插入图片描述
在这里插入图片描述
下面是JQ ajax的方法
在这里插入图片描述
在这里插入图片描述
主要看第五个:
在这里插入图片描述
在这里插入图片描述

接下来示例:
在导入jquery的时候记得要绝对路径


默认get可以加个type参数也可以直接$.post
在这里插入图片描述
后端:
在这里插入图片描述

测试:
在这里插入图片描述

示例2:
在这里插入图片描述
在这里插入图片描述
$(function () {

}) 让他一进来就执行一个函数,函数获取btn绑定的点击事件
在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述

示例3:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试:
在这里插入图片描述
在这里插入图片描述

碰到过的面试题:

  1. ajax的参数有哪些:回答几个和意思足以
    在这里插入图片描述
    在这里插入图片描述

  2. 前端json转字符串数组,后端json转字符串数组

//首先这个字符串要是一个合法的json字符串,才能转换成json对象
JSON.parse( str )//转换成json对象 即js对象
JSON.stringify( jsonObject )//转换成json字符串  即字符串

在这里插入图片描述
JSON转JS数组

//json字符串转数组
var jsonStr = '[1,2,3,{"a":1}]';
var jsarr=JSON.parse( jsonStr );
alert(jsarr[0]);

JS数组转JSON

//数组转json串
var arr = [1,2,3, { a : 1 } ];
JSON.stringify( arr );

后端,json和字符串数组互转

要想实现JSON和java对象之间的互转,需要借助第三方jar包,这里使用json-lib这个jar包
json-lib提供了几个类可以完成此功能,例,JSONObject、JSONArray。从类的名字上可以看出JSONObject转化的应该是对象格式的,而JSONArray转化的则应该是数组对象(即,带[]形式)的。

java对象–》》字符串

public static void convertObject() {
        
        Student stu=new Student();
        stu.setName("JSON");
        stu.setAge("23");
        stu.setAddress("北京市西城区");

        //1、使用JSONObject
        JSONObject json = JSONObject.fromObject(stu);
        //2、使用JSONArray
        JSONArray array=JSONArray.fromObject(stu);
        
        String strJson=json.toString();
        String strArray=array.toString();
        
        System.out.println("strJson:"+strJson);
        System.out.println("strArray:"+strArray);
    }

打印的结果

strJson:{"address":"北京市西城区","age":"23","name":"JSON"}
strArray:[{"address":"北京市西城区","age":"23","name":"JSON"}]

从结果中可以看出两种方法都可以把java对象转化为JSON字符串,只是转化后的结构不同。

JSON字符串–》》java对象
首先需要定义两种不同格式的字符串,需要使用 \对双引号 进行转义,

public static void jsonStrToJava(){
        //定义两种不同格式的字符串
        String objectStr="{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}";
        String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}]";
    
        //1、使用JSONObject
        JSONObject jsonObject=JSONObject.fromObject(objectStr);
        Student stu=(Student)JSONObject.toBean(jsonObject, Student.class);
        System.out.println("stu:"+stu);
        
        //2、使用JSONArray
        JSONArray jsonArray=JSONArray.fromObject(arrayStr);
        //获得jsonArray的第一个元素
        Object o=jsonArray.get(0);
        JSONObject jsonObject2=JSONObject.fromObject(o);
        Student stu2=(Student)JSONObject.toBean(jsonObject2, Student.class);
        
        System.out.println("stu2:"+stu2);
        
    }

输出

stu:Student [name=JSON, age=24, address=北京市西城区]
stu2:Student [name=JSON, age=24, address=北京市西城区]

以上讲述了一种jar包的转换方法,也可以导入其他jar包
比如阿里巴巴的:import com.alibaba.fastjson.JSON;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无极的移动代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值