【问题标题】:How can I prevent Spring MVC from adding additional attributes to my JSON?如何防止 Spring MVC 向我的 JSON 添加其他属性?
【发布时间】:2011-11-20 06:36:15
【问题描述】:

我正在使用 Jackson 和 ContentNegotiatingViewResolver 从 Spring 控制器返回 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;

Spring 总是将 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-mvc annotations jackson


    【解决方案1】:

    遇到了类似的问题-

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

    Spring JSON Jackson Marshaller adding additional parameter in my response object

    【讨论】:

    • @Y Kamesh Rao:感谢您的评论,尽管它并没有真正解决我的问题。其中应该有一个 MappingJacksonJsonView 的 excludeModelAttributes ,不幸的是没有,奇怪的是 Spring JacksonView 的默认行为是附加 ALL 模型属性
    • @Y Kamesh Rao,在我的情况下,实际上更好的解决方案是继承 MappingJacksonJsonView 并覆盖 filterModel,从mkyong.com/spring-mvc/… 的评论中得到这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多