2012-06-26 32 views
1

我使用spring 3.0 webservices。 它產生一個json響應。如何自定義spring 3.0 json響應?

我想使用相同的webservices生成jsonp響應。

請建議如何自定義spring 3.0 webservices json響應。

+0

您能否詳細說明一下? –

+0

問題已解決。我已經將過濾器添加到將json響應轉換爲jasonp響應的應用程序。我使用傑克遜json轉換器將響應轉換爲json。 –

+0

嗨Ravi,因爲jquery ajax不允許爲發佈請求進行跨域調用。爲了解決這個問題,我發現如果我們使用jsonp,它允許我們進行跨域調用。所以我試圖定製spring json響應來定製jsonp響應,用戶可以在其中定義回調函數。請建議您是否有其他方法來執行此操作。現在我正在使用過濾器來修改運行時的json響應。 –

回答

1

您可以嘗試將Jackson集成到您的項目中,該項目擁有大量JSON序列化選項。配置傑克遜很簡單:

<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> 

一旦你得到這個工作,你可以使用傑克遜的出色的註解你的模型對象來配置他們是如何被印在了JSON,或者如果他們被忽略(@JSONIgnore)。

如果你想更進一步,你可以用你自己的方法來擴展org.springframework.web.servlet.view.json.MappingJacksonJsonView類,並堅持下去。

希望這會有所幫助。

+0

Thaks Ivayo。這對我幫助很大。 –