使用@ResponseBody返回JSON数据

Posted 郭文睿的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用@ResponseBody返回JSON数据相关的知识,希望对你有一定的参考价值。

创建一个项目,在web目录下新建一个assets/js目录,加入jquery和json2的js文件,在lib下加入fastjson的jar文件。

Book3Controller

package com.wen.controller;

import com.wen.domain.Book;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;
import java.util.List;

@Controller
public class Book3Controller {
    @RequestMapping(value = "/test3RequestBody")
    //@ResponseBody会将集合数据转换成json格式并将其返回给客户端
    @ResponseBody
    public Object getJson(){
        List<Book> bookList = new ArrayList<>();
        bookList.add(new Book(1,"小猪猪","xiaoxiaorui"));
        bookList.add(new Book(2,"小猫咪","xiaoxiaorui"));
        return bookList;
    }
}

index.jsp

<html>
<head>
    <title>测试返回JSON格式的数据</title>
    <script type="text/javascript" src="assets/js/jquery.js"></script>
    <script type="text/javascript" src="assets/js/json2.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            testResponseBody();
        });

        function testResponseBody() {
            $.ajax({
                    dataType: "json",//预期服务器返回的数据类型
                    type: "post",//请求方式post 或 get
                    url: "${pageContext.request.contextPath}/test3RequestBody",//发送请求的URL字符串
                    contentType: "application/json",//发送信息至服务器时的内容编码格式
                    async: true,//默认设置下,所有请求均为异步请求。如果设置为false,则发送同步请求
                    success: function (data) {//请求成功的回调函数
                        $.each(data,function () {
                            var tr=$("<tr align=‘center‘/>");
                            $("<td/>").html(this.id).appendTo(tr);
                            $("<td/>").html(this.name).appendTo(tr);
                            $("<td/>").html(this.author).appendTo(tr);
                            $("#book-table").append(tr);
                        })
                    },
                    error: function () {
                        alert("数据加载失败")
                    }
                })
        }
    </script>
</head>
<body>
<table id="book-table" border="1" style="border-collapse: collapse">
    <tr align="center">
        <th>编号</th>
        <th>书名</th>
        <th>作者</th>
    </tr>
</table>
</body>
</html>

因为spring中,我们使用的是fastjson处理json数据,因此还需要对springmvc-config.xml和web.xml进行一些其他配置,可以参考之前关于springmvc的文章。
技术图片


以上是关于使用@ResponseBody返回JSON数据的主要内容,如果未能解决你的问题,请参考以下文章

@ResponseBody注解之返回json

@ResponseBody将集合数据转换为json格式并返回给客户端

@ResponseBody返回JSON数据,360安全浏览器弹出下载页面

@ResponseBody返回JSON数据,360安全浏览器弹出下载页面

springMVC 返回json数据

@responsebody一般在啥情况下使用,他的好处与坏处?