Spring MVC返回Map格式JSON数据

Posted

tags:

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

问题描述: ajax中走error : function(e) {}

问题背景:

在测试controller层时,试过了ResponseEntity<ResponseModel>这种类型返回,这是可行的,但是出于好奇,想看看Map返回可不可行。结果出乎我预料,返回Map时JSP页面总是走error : function(e) {},这就奇怪了,刚才用ResponseEntity返回可行,而Map为什么不行呢?于是就查了ajax走error:function的原因,

原因:

1. 后台出错
2. 后台响应中断
3. 返回数据类型不是JSON

但是打了断点排除了,前两个原因,所以猜测很有可能是第三个原因。

Map返回本来就是没有将其转化为JSON格式,果然

在@RequestMapping上加上@ResponseBody,就可以将返回Map转化为json格式。

 

先记录下问题解决方法,夜深,等有时间再深究源码

参考:

      http://www.iteye.com/problems/88859

      https://segmentfault.com/q/1010000004152735?_ea=509054

准备深究参考:

       http://mybloggers.blog.163.com/blog/static/1003865092010111631741468/ 

 

      @ResponseBody 
1
@RequestMapping(value = "/user/login", method = RequestMethod.POST) 2 public Map<String, Object> userRegister(@RequestBody User user) { 3 Map<String, Object> map = new HashMap<String, Object>(); 4 User userInfo = userLoginService.userRegister(user); 5 System.out.println(user.getNumber()); 6 if (userInfo != null) 7 map.put("code", "0"); 8 else 9 map.put("code", "1"); 10 11 return map; 12 13 }

 

<script type="text/javascript">
    $(document).ready(function() {
        $("#login_user").click(function() {
            var username = $("#login_account").val();
            var pass = $("#login_userPwd").val();
            var user = {
                number : username,
                password : pass
            };//拼装成json格式  

            $.ajax({
                type : "POST",
                url : "http://localhost:8080/iswust2hand/2hand/user/login",
                data : JSON.stringify(user),
                contentType : ‘application/json;charset=utf-8‘,
                dataType : ‘json‘,
                success : function(data) {

                      if (data.code == ‘0‘) {
                        window.location.href = "/iswust2hand/index.jsp";
                        alert("欢迎使用西科二手平台!");
                    }else{
                        alert("密码错误,请确认后重新登录!");
                    }  

                },

                error : function(data) {
                    alert("出错:" + data.code);
                }

            });

        });
    });
</script>

 

前端新手,会点后端,欢迎大神交流!




以上是关于Spring MVC返回Map格式JSON数据的主要内容,如果未能解决你的问题,请参考以下文章

springmvc怎么返回json数据报406

springmvc如何返回json串和返回map的区别

spring Mvc json返回json的日期格式问题

spring mvc接收参数方式,json格式返回请求数据

spring mvc返回json格式和json字符串

spring mvc+ajax 实现json格式数据传递