我从一个简单的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
到控制器方法中。
- 使用Jackson JSR310模块反序列化LocalDateTime
- 当json包含type属性时,jackson能否确定要反序列化的根对象类型?
- 如何使用jackson库将pojos附加到json文件中
- 如何从FasterXML \ Jackson序列化/反序列化布尔值作为Int?
- Jersey,Jackson和JAX-RS POST多种JSON格式
- jackson反序列化json到java-objects
- 使用键作为值反序列化Jackson
- JsonMappingException:无法从START_OBJECT标记中反序列化java.lang.Integer的实例
- Spring JSON请求体未映射到Java POJO