我从一个简单的spring mvc json服务输出之前得到一个额外的空{} json对象和一个&&

好的,我有一个基于spring mvc的json web服务。 这是一个测试应用程序,我在构建基于spring mvc的restful json服务时从未见过这样的问题。 我的测试服务的输出总是返回并清空json对象,然后是&&,后跟我想要返回的数据。 所以结果如下:

{} && {“status”:200,“serverTime”:“2013年1月6日美国东部时间下午7:35:45”}

我的控制器方法处理这个非常简单的GET请求的代码是:

@RequestMapping(value = "/test.json", method = RequestMethod.GET) public ModelMap test(ModelMap m, HttpServletRequest request, Locale locale) { Date date = new Date(); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); String formattedDate = dateFormat.format(date); m.addAttribute("serverTime", formattedDate); m.addAttribute("status", 200); return m; } 

我不能为我的生活弄清楚那个额外的空{} json对象来自哪里。 我的spring配置看起来像这样:

                        

任何帮助将不胜感激。 我已经在星期天吹了6个小时试图弄清楚为什么会发生这种情况。

MappingJacksonJsonView javadoc:

 public void setPrefixJson(boolean prefixJson) 

指示此视图的JSON输出是否应以“{} &&”为前缀。 默认值为false。 以这种方式对JSON字符串进行前缀用于帮助防止JSON劫持。 前缀使字符串在语法上无效,因为它不能被劫持。 此前缀不会影响JSON的评估,但如果对字符串执行JSONvalidation,则需要忽略前缀。

所以你尝试将prefixJson设置为false吗?

                        

我收到了同样的东西,我犯了与你提供的代码中相同的错误:)我只是偶然忘记将@ResponseBody注释@ResponseBody到控制器方法中。