如何防止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;
春永诺重视uploadItem
和params
的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
@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 **模型属性 –
@Y Kamesh Rao,在我的情况下,一个更好的解决方案是子类MappingJacksonJsonView并覆盖filterModel,得到这从这里的评论http://www.mkyong.com/spring-mvc/spring-3-mvc-contentnegotiatingviewresolver-example/ –