如何在SpringMVC中为某个类自定义JSON

我正在使用SpringMVC并具有以下方法。

@RequestMapping("/login") public @ResponseBody User login(User user) { // some operation here .... return user; } 

在大多数情况下,SpringMVC以适当的方式将对象转换为JSON。 但有时您可能需要自定义JSON。 我在哪里可以为所有User对象自定义JSON。 我希望将User对象转换为JSON的行为全面一致。 我猜一个监听器或接口可以实现这一点。 这种解决方案存在吗?

PS。 如果我想转换的对象是第三方类的实例怎么办? 我无法在类定义中自定义它,因为我没有源代码…

Spring默认使用Jackson来序列化和反序列化JSON。 您可以在User类型上使用Jackson的@JsonSerialize注释,并提供一个JsonSerializer实现,它可以根据需要执行序列化。

下面发布了一个将json Array反序列化为Arraylist的示例

 @RequestMapping(value = "/mapJsonObjects", method = RequestMethod.POST) public static ModelAndView parseJSONObjects(@RequestParam String jsonList,HttpServletRequest request, HttpServletResponse response) throws Exception { JSONParser parser=new JSONParser(); ArrayList filteredList = new ArrayList(); Object obj = parser.parse(jsonList); JSONArray newList = (JSONArray)obj; filteredList = newList; ----------- 

}

将数组List转换为json数组。 首先将以下bean添加到springServlet.xml

   text/html   

然后从控制器返回如下所示的arraylist

  Map filteredMap = new LinkedHashMap(); List filteredList; ------filteredMap logic ----------- filteredAccountMap.put("rows", filteredList); return new ModelAndView("jsonView", filteredMap);