Spring MVC:是否可以返回Map 使用杰克逊动态转换为JSON?


问题内容

我想启用Spring MVC Web应用程序以返回表示为JSON的模型状态。

我意识到,通过@ResponseBody注释控制器方法,可以在JSON和对应类型的对象之间进行转换。但是,我要查看的模型对象直接与数据库对话,而无需维护任何状态。

因此,我想知道是否可以代替我只填充一个Map(例如HashMap),并由Jackson进行序列化?我意识到我可以为包含状态的模型创建新的View类,但是我不想这样做。

谢谢。


问题答案:

Map<String, ?>从几个控制器中返回a ,并且Jackson将内容自动转换为JSON-
如您所说,当您还没有可以保存您想要的信息的域对象时,这样做更容易返回。

只要您在类路径中具有jackson库并且<mvc:annotation- driven/>在spring配置中,就应该自动为您完成此操作。我用于Jackson的Maven依赖项:

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.8.5</version>
        <scope>runtime</scope>
    </dependency>