blog--用Json来做前后台数据交互

JavaEE——SpringMVC(8)--处理 JSON:使用 HttpMessageConverter 可做下载

ajax  $.ajax()方法详解

使用@ResponseBody注解

从后台获取List<Blog> 传递给前端。并解析

 @RequestMapping(value = "/testJson", method = RequestMethod.POST)
    public @ResponseBody List<Blog> testJson(HttpServletRequest request){
        String id = request.getParameter( "id" );
        Integer userId = Integer.valueOf( id );
        List<Blog> blog = blogService.findAllBlogByUserId( userId );


        /*JSONArray jsonArray = JSONArray.fromObject(blog);*/
        /*JSONObject jsonObject = JSONObject.fromObject( blog );*/
        return blog;
    }

  

前端将获取到的List数据解析为想要的格式

可使用JavaScript JSON.stringify() 来进行

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p id="demo"></p>
<script>
var str = {"name":"菜鸟教程", "site":"http://www.runoob.com"}
str_pretty1 = JSON.stringify(str)
document.write( "只有一个参数情况:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty1 + "</pre>" );
document.write( "<br>" );
str_pretty2 = JSON.stringify(str, null, 4) //使用四个空格缩进
document.write( "使用参数情况:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty2 + "</pre>" ); // pre 用于格式化输出
</script>

</body>
</html>

  

输出结果

只有一个参数情况:
{"name":"菜鸟教程","site":"http://www.runoob.com"}

使用参数情况:
{
    "name": "菜鸟教程",
    "site": "http://www.runoob.com"
}

  

<button id="blogType">test Json</button>
<script>

    document.getElementById('blogType').addEventListener('click', function () {
        var userId = <%--${sessionScope.user.id};--%>
        $.ajax({
            type: "post",
            url: "/blogType/allBlogType",
            data: {id:JSON.stringify(userId)},
            dataType: "json",
//            contentType: "application/json",
            success: function(data){
                $.each(data, function(i, item){
                    var json1 = JSON.stringify(item, null, 4);
                    console.log(json1);
                    $.each(item, function(j, val){
                    });
                });
            }
        });
    }, false)
</script>

  

在Controller处

@Controller
@RequestMapping("/blogType")
public class BlogTypeController {

    @Autowired
    BlogTypeService blogTypeService;

    @RequestMapping(value = "/allBlogType")
    public @ResponseBody List<BlogType> allBlogType(HttpServletRequest request){
        String id = request.getParameter( "id" );
        Integer userId = Integer.parseInt(id);
        List<BlogType> blog =  blogTypeService.allBlogType( userId );
        for(BlogType i : blog){
            System.out.println(i);
        }
        return blog;
    }
}

  

原文地址:https://www.cnblogs.com/SkyeAngel/p/8528452.html