Sring

Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点

坚强是说给别人听的谎言 提交于 2019-11-27 08:31:24
Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点的 json 报文 ###问题 问题描述起来比较拗口,其实就是用Spring MVC时,如何将对象映射成 json 报文时不把对象作为json的根节点。即使用@ResponseBody的效果。 比如,默认情况下,使用ModelAndView的addObject(key,object)或者ModelMap的addAttribute(key,object)保存完Java对象,然后交给Srping的视图解析器解析成json时,会以key做为json的根节点的名字,如果没有传入key,则使用类名生成一个camel的根节点名字,像这样: { "objectName": { "id": 123, "name": "zhangsan" } } 而Controller中如果用@ResponseBody注解的话,不会生成根节点,最终返回的json报文是这样子的: { "id": 123, "name": "zhangsan" } 当项目中的Controller中存在@ResponseBody与ModelAndView混用的情况时,返回的报文格式不一致,对前端解来说解析非常不方便(有些地方从根节点里面读取,有些又直接从返回的json对象里读)。 ###解决方案 之前baidu中没有发现类似问题的描述