我有哪裏類型轉換的確在PHP SoapClient類外的客戶機服務器的情況下,不能告訴閹空數組是聯想或數字,所以默認爲數字。空關聯數組SOAP類型轉換
所有暴露的函數都使用基本類型,沒有類。
關聯數組如array("something"=>123)
被轉換到地圖數據類型。但是,當相同的數組爲空時,如array()
,它將轉換爲Ruby端的數組。類型轉換爲對象(object)array()
將導致Ruby端的結構數據類型。
的參數是更復雜一些,而不是如上述那樣簡單:
array(
"options"=>array(
"plans"=>array(
0=>array(
"name"=>"abc",
"product_options"=>array(
"optional_key_determines_associative_array_data_type"=>0,
),
),
),
),
);
如果"product_options"
下數組爲空的,它被轉換,而不是圖中的Ruby陣列,。再次,在PHP中輸入casting到object中的結果會導致Ruby中的結構。
我能在PHP端,使空「聯想」的數組最終成爲在Ruby側的地圖嗎?
PHP 5.3.3,和SoapClient。 Ruby 1.8.7,Rails 2.3.2使用Action Web Service。
我試過SOAP_USE_XSI_ARRAY_TYPE,它不適用於所提出的問題。 –
在PHP中添加虛擬數組鍵不是一個可接受的解決方案。 –
一個醜陋的黑客將會擴展'SoapClient'並在'SoapClient :: __ doRequest'中執行一些操作(你將XML作爲一個字符串發送)。 – Wrikken