前后端交互不用ajax,不用jsp怎么实现前后端交互?给萌新后端的ajax教程(3)

Hello大家好,今天为大家带来ajax系列的(大概可能也许是)最后一篇,这一篇我们主要讲讲前端html页面接收json后可以做的处理。

一、遍历json

(1)List型

Controller代码:

@RequestMapping(value = "/test")

public @ResponseBody List testAJAX(HttpServletRequest request, HttpServletResponse response) {

List QAQ=new ArrayList<>();

QAQ.add("你好啊!");

QAQ.add("两只老虎跑得快!");

QAQ.add("Hello World.");

return QAQ;

}

前端代码:

function testajax() {

var text=document.getElementById("txt").value;

math?formula=.ajax(%7B%20url%3A%22test%22%2C%20type%3A%22post%22%2C%20data%3A%7B%7D%2C%20dataType%3A%22json%22%2C%20async%3Atrue%2C%20success%3Afunction(data)%7B%20alert(data%5B0%5D)%3B%20alert(data%5B1%5D)%3B%20alert(data%5B2%5D)%3B%20%7D%2C%20%7D)%3B%20%7D%20%E6%89%93%E5%BC%80%E6%B5%8F%E8%A7%88%E5%99%A8%EF%BC%8C%E4%BD%A0%E4%BC%9A%E5%8F%91%E7%8E%B0%E4%BE%9D%E6%AC%A1%E8%B7%B3%E5%87%BA%E4%B8%89%E4%B8%AA%E5%BC%B9%E7%AA%97%EF%BC%8C%E6%98%AF%E6%88%91%E4%BB%AC%E6%B7%BB%E5%8A%A0%E5%88%B0List%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%EF%BC%8C%E9%81%8D%E5%8E%86List%E5%9E%8Bjson%E7%94%A8%E7%B1%BB%E4%BC%BC%E4%BA%8E%E6%95%B0%E7%BB%84%E4%B8%8B%E6%A0%87%E7%9A%84%E6%96%B9%E5%BC%8F%E3%80%82%20%E5%BD%93%E7%84%B6%E6%88%91%E4%BB%AC%E6%AF%8F%E6%AC%A1%E9%83%BD%E6%89%8B%E5%86%99%E4%B8%8B%E6%A0%87%E5%A4%AA%E9%BA%BB%E7%83%A6%E4%BA%86%EF%BC%8C%E7%94%A8%E4%B8%80%E4%B8%AAfor%E5%BE%AA%E7%8E%AF%E6%9D%A5%E8%A7%A3%E5%86%B3%EF%BC%8C%E6%8A%8Asuccess%E4%B8%AD%E7%9A%84%E5%86%85%E5%AE%B9%E6%8D%A2%E6%88%90%EF%BC%9A%20for(var%20i%3D0%3Bi%3Cdata.length%3Bi%2B%2B)%20%7B%20alert(data%5Bi%5D)%3B%20%7D%20%E4%BB%A3%E7%A0%81%E6%AD%A3%E5%B8%B8%E8%BF%90%E8%A1%8C%E5%96%94%E3%80%82%20(2)Map%E5%9E%8B%20Controller%E5%87%BD%E6%95%B0%EF%BC%9A%20%40RequestMapping(value%20%3D%20%22%2Ftest%22)%20public%20%40ResponseBody%20Map%3CString%2CString%3E%20testAJAX(HttpServletRequest%20request%2C%20HttpServletResponse%20response)%20%7B%20Map%3CString%2CString%3E%20a%3Dnew%20HashMap%3C%3E()%3B%20a.put(%22topic%22%2C%22%E6%88%91%E6%98%AF%E6%A0%87%E9%A2%98%22)%3B%20a.put(%22context%22%2C%22%E6%88%91%E6%98%AF%E5%86%85%E5%AE%B9%22)%3B%20return%20a%3B%20%7D%20%E5%89%8D%E7%AB%AF%EF%BC%9A.ajax({

url:"test",

//contentType:"application/json;charset=UTF-8",

type:"post",

data:{},

dataType:"json",

async:true,

success:function(data){

alert(data.topic);

alert(data.context);

},

});

也就是说,使用data.key的名字就可以访问value啦。

你自己封装好的对象也符合这条规则喔。

(3)Map型List

什么是Map型List呢?就是多个Map的集合。

Controller函数:

@RequestMapping(value = "/test")

public @ResponseBody List> testAJAX(HttpServletRequest request, HttpServletResponse response) {

Map a=new HashMap<>();

a.put("topic","我是标题a");

a.put("context","我是内容a");

Map b=new HashMap<>();

b.put("topic","我是标题b");

b.put("context","我是内容b");

List> c=new ArrayList<>();

c.add(a);

c.add(b);

return c;

}

前端:

$.ajax({

url:"test",

//contentType:"application/json;charset=UTF-8",

type:"post",

data:{},

dataType:"json",

async:true,

success:function(data){

alert(data[0].topic);

alert(data[0].context);

alert(data[1].topic);

alert(data[1].context);

},

});

当然同样可以使用for循环的写法。

可是为什么要闲的蛋疼这样写呢?我来举一个例子,比如我们写一个博客项目,我们定义一个对象Article,它里面有发表时间time属性,还有标题topic属性。当我们需要加载文章列表时,如果列表想显示文章的标题和发表时间,就需要这么做,List就是这种形式。

二、使用json传递数据,后端给前端发送Date,前端收到的不是标准格式的时间而是一串数字的问题。

在domain层Date类型数据的get方法上方加上

@JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

注解即可。

三、结语

基于jQuery的ajax教程暂时告一段落,如果有什么遗漏的地方过后会再开一篇文章进行补充。感谢阅读,希望能对你有所帮助。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值