【问题标题】:How to customize spring 3.0 json response?如何自定义 spring 3.0 json 响应?
【发布时间】:2012-06-26 09:17:13
【问题描述】:

我正在使用 spring 3.0 网络服务。 它产生一个 json 响应。

我想使用相同的网络服务生成 jsonp 响应。

请建议如何自定义 spring 3.0 webservices json 响应。

【问题讨论】:

  • 你能详细说明一下吗??
  • 问题已解决。我已将过滤器添加到将 json 响应转换为 jasonp 响应的应用程序中。我使用杰克逊 json 转换器将响应转换为 json。
  • 嗨,Ravi,因为 jquery ajax 不允许对发布请求进行跨域调用。为了解决这个问题,我发现如果我们使用 jsonp 它允许我们进行跨域调用。所以我试图将spring json响应定制为自定义的jsonp响应,用户可以在其中定义回调函数。请建议您是否有任何替代方法来实现这一点。现在我正在使用过滤器在运行时修改 json 响应。
  • stackoverflow.com/questions/10323625/… 这可能对你有帮助

标签: web-services spring-mvc


【解决方案1】:

您可以尝试将 Jackson 集成到您的项目中,该项目有大量的 JSON 序列化选项。配置 Jackson 很简单:

<bean
    class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="order" value="0" />
    <property name="mediaTypes">
        <map>
            <entry key="json" value="application/json" />
        </map>
    </property>
    <property name="defaultViews">
        <list>
            <bean
                class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
        </list>
    </property>
</bean>

一旦你得到这个工作,你可以在你的模型对象上使用 Jackson 的优秀注释来配置它们在 JSON 中的打印方式,或者它们是否被忽略 (@JSONIgnore)。

如果你想更进一步,你可以用你自己的扩展 org.springframework.web.servlet.view.json.MappingJacksonJsonView 类,然后发疯。

希望这会有所帮助。

【讨论】:

  • Thaks Ivayo。这对我帮助很大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-13
相关资源
最近更新 更多