2013-02-21 8 views
0

我有一個關於如何從soap調用中獲取響應並將其傳遞給JSON對象的問題。轉換從我的soap響應收到的字段,以匹配JSON對象中的字段

讓我先鋪陳情況:

首先我送基於XML的請求,基於SOAP的Web服務。我以xml格式接收響應,我希望能夠將此響應傳遞給JSON對象,並在轉換從我的soap響應中接收到的字段的方式上匹配JSON對象中的字段。

例如,我可能有

<FirstName>Bob<FirstName> 

在我的SOAP響應現場,但我需要變換到一個合適的一個名爲「第一」的變量在我的JSON對象。

對此問題的任何幫助將不勝感激,我是所有這些技術的新手,並且已經基本上獲得了基本教程並將它們擴展到目前爲止我所需要的內容,但現在已陷入困境。如果需要更多的澄清,我可以這麼做!

+0

您可以詳細介紹一下您的技術堆棧嗎?您是否嘗試在JavaScript中的另一個服務中轉換服務調用? – JustEngland 2013-02-22 01:28:33

+0

當然可以。基本上我們有我們自己的一組web服務,它們返回JSON對象響應。外部來源發送請求,我們將這些對象返回給他們。但存儲信息的另一點是構建在SOAP上的另一個外部Web服務源。所以我們必須發送xml格式的soap請求給他們並且接收他們的迴應。因此,它們以XML格式的響應需要轉換回JSON,因此我們可以將它作爲我們結尾的一個分支。這是所有基於Java的 – parchambeau 2013-02-22 01:37:36

回答

1

有一些標準的方法可以從XML轉換成JSON(Parker conventionBadgerfish或使用JsonML等),但他們的工作很好,當你有一個1:XML和JSON之間一一對應,你不介意有一些怪異暴露給客戶的JSON(尊重所選標準)。

基於您提供的詳細信息我假設您已經有了自然的JSON表示,並且您沒有1:1的對應關係,因爲FirstName XML元素以JSON映射到First

您的應用程序位於JSON客戶端和SOAP外部存儲之間,因此在這種情況下,最可控制的方式是使用應用程序中的對象併爲對象提供兩種表示形式:JSON和XML。

您的客戶端發送一個JSON請求,將其解組爲一個請求對象,將對象編組爲XML,將其發送到SOAP存儲器,您將得到的結果解析爲一個響應對象,您現在編組爲一個XML JSON響應,您最終發送回客戶端。通過使用中間對象,您可以使用JAXB作爲XML表示,並使用Jackson's support for JAXB annotation作爲JSON。

無論哪種方式,手動或使用現有的庫,你必須從XML映射到JSON。