如何防止Spring MVC向我的JSON添加其他属性?

问题描述:

我使用Jackson和一个ContentNegotiatingViewResolver从Spring控制器返回JSON。如何防止Spring MVC向我的JSON添加其他属性?

当我在Spring定义一个方法是这样

public ModelMap save(FileUploadBean uploadItem, ParameterBean params) throws JsonParseException, JsonMappingException, IOException 

,并返回一个ModelMap

ModelMap model = new ModelMap(); 
model.addAttribute("output","Save was ok"); 
return model; 

春永诺重视uploadItemparams的JSON响应,尽管我已经从未添加这两个到ModelMap。

结果看上去像

{ 
    "parameterBean": { 
    "values": { 
     "json": "{\"seizure\":{\"id\":1},\"classDocumentType\":{\"id\":1},\"seizureDocumentI18ns\":[{\"id\":\"\",\"comment\":\"123\",\"matLanguageCode\":\"\"}]}" 
    } 
    }, 
    "output": ["Save was ok"], 
    "fileUploadBean": { 
    "file": { 
     "originalFilename": "Form.png", 
     "fileItem": { 
     "contentType": "image/png" 
     } 
    } 
    } 
} 

这是默认行为,如果它在哪里描述...

面临着类似的发出─

请查看以下链接。我发布了一个决议。

Spring JSON Jackson Marshaller adding additional parameter in my response object

+0

@Y Kamesh饶:谢谢你的评论,虽然它并没有真正解决我的问题。 [MappingJacksonJsonView]应该有一个excludeModelAttributes(http://static.springsource.org/spring/docs/3.1.0.RC1/javadoc-api/org/springframework/web/servlet/view/json/MappingJacksonJsonView.html ),不幸的是,这并不奇怪,它是从Spring JacksonView的默认行为附加** ALL **模型属性 –

+0

@Y Kamesh Rao,在我的情况下,一个更好的解决方案是子类MappingJacksonJsonView并覆盖filterModel,得到这从这里的评论http://www.mkyong.com/spring-mvc/spring-3-mvc-contentnegotiatingviewresolver-example/ –