2011-11-23 69 views
0

我正在嘗試連接到網站。雖然認證成功後,我得到如下回應:如何解析可以是文本或JSON或XML的響應

{"code": "OK", 
"data": {"session_id": "[email protected]:EdiPNoBS2iYxOsAF9e2ceMbk"}, 
"user": "[email protected]"} 

什麼是快速簡便的方法,通過上面給出的(純文本)的反應來分析?另外,如果響應是JSON對象,那麼如何解析響應,最好使用GSON庫?我只想使用Google App Engine for Java支持的庫,而GSON就是其中之一。

最後,如果類似於上述的響應是XML響應,那麼我是否必須對類似於上述響應的結構進行建模?再說一遍,是否有一種快速簡單的方式來獲取響應並進行解析,最好使用XML RPC Client?同樣,我只想使用Google App Engine for Java支持的庫。 XML RPC客戶端只是一個建議,如果你可以提出更好的建議,那麼請考慮。

+0

我很困惑 - 你想將json對象轉換爲字符串,然後解析該字符串? –

+0

@ MattFenwick-我只是想通過響應正確解析,響應可以是純文本/ json/xml--我建議將json轉換爲字符串,然後解析該字符串,是通過json解析的可能方式之一回復...對不起,如果這讓你感到困惑......我正在編輯問題以刪除該建議... – Arvind

+0

響應中的內容類型標題應該可以幫助你 – njzk2

回答

0

我很困惑,爲什麼你會回到不同的數據類型的響應相同的請求。但是,您應該能夠檢查響應的Content-Type標頭,以確定是否應將其解析爲JSON或XML。正如您已經提到的那樣,您可以使用諸如Gson之類的庫將響應作爲JSON來處理,或者使用內置XML API之一(例如JAXP)將響應作爲XML來處理。

+0

@ ziesemer-我只會找回純文本對於我目前正在使用的代碼的響應,但是我必須在將來使用XML和JSON響應,因此我詢問了同一問題中的所有3種類型... – Arvind

+0

對於您提出的每個請求,您幾乎都需要有一個「合同」,使您能夠知道預期的數據類型。即使數據類型(文本,JSON或XML)發生變化,也不能保證即使標準化爲相同的數據類型,每個返回的信息也是相同的(不同的模式等)。非常多,我認爲你需要在請求請求的基礎上進行設計。 – ziesemer

+0

@ ziesemer-好的,謝謝......目前我正在將上面的回覆作爲純文本回復......你能否建議我從上面給出的樣本響應中提取各種值?這是一個純文本回復...謝謝... – Arvind