2011-11-04 181 views
0

我想創建某種形式的網絡API傳輸類型的對象(我沒有對協議的偏好),其中服務器使用Java和客戶端使用PHP。跨平臺

我想請求和響應都爲對象(類的實例,而不是JSON風格的哈希值)。對象的字段可以是基元類型或其他對象。我將在客戶端和服務器代碼中定義所有必需的類。 PHP和Java有類似的對象模型,因此用兩種語言編寫相應的類都不難。

爲了使這項工作,就必須序列化一側的物體一些自動化的方式,和反序列化它的其他。它需要知道哪個PHP類映射到哪個Java類,以及如何轉換字段。我可以寫一些東西,但是有沒有一個現有的協議來傳輸這樣的對象?這可以用SOAP完成嗎?

+0

http://json.org花花公子。 –

+0

我正在尋找轉移輸入的對象。 JSON只處理原始類型。 –

回答

2

Java和PHP對象不可互換。您必須在兩端定義對象類型,並且傳輸協議可以是任何您喜歡的。序列化和反序列化使整個過程變得透明。傳輸媒介可能是JSON,XML,YAML或其他任何事情。

對於像記錄對象: { 「_type」: 「MyCoolObjectType」, 「一」:1, 「B」:2, 「C」:3" }

如果你想寫一次,到處使用,我推薦使用於兩端具有相同的語言,否則你必須有一個編譯器,它可以將所選語言之間的轉換。

1

SOAP Web服務可以處理的基本抽象,只要作爲請求/響應不是很複雜,你可以在Java中創建的類,然後拿到API導出WSDL他們。

0

您需要將它們都序列化爲相同的字符串。序列化的PHP格式和Java格式不同,因此不兼容。你需要一個通用的交換格式,我建議你不要使用PHP的。然而,該功能在PHP序列化是相當簡單的,都包含在PHP源代碼EXT /標準/ var.c文件,如果您選擇使用它..

請參閱以下內容:

http://en.wikipedia.org/wiki/XML(重點煤礦):

儘管XML的設計着重於文件,它被廣泛用於表示任意的數據結構,例如在網絡服務