2011-07-07 29 views
-3

的動態構建陣列我需要創造這樣的:如何創建一個哈希值包括散列

"paxReference" => [{ 
    "ptc" => "ADT",     
    "traveller" => [ 
    { 
     "ref" => "1"    
    }, 
    { 
     "ref" => "2" 
    } 
    ] 
}, 
{ 
    "ptc" => "CH",     
    "traveller" => [ 
    { 
     "ref" => "3",     
    }, 
    { 
     "ref" => "4",     
    } 
    ] 
}, 
] 

但是哈希「旅行者」的數組必須動態地建立,我的意思是,如果pararmeter ADT_number是4,我必須包含4

"ref" => "1" 
"ref" => "2" 
"ref" => "3" 
"ref" => "4" 

「CH」段的內容相同。

我該如何在Ruby中做到這一點?

的放出來應該是這樣的:

<paxReference> 
<ptc>ADT</ptc> 
<traveller> 
    <ref>1</ref> 
</traveller> 
<traveller> 
    <ref>2</ref> 
</traveller> 
</paxReference> 
<paxReference> 
<ptc>CH</ptc> 
<traveller> 
    <ref>3</ref> 
</traveller> 
<traveller> 
    <ref>4</ref> 
</traveller> 
</paxReference> 
+0

這裏的輸入和輸出究竟是什麼? – Dogbert

+0

如果你只是想要一些標記,爲什麼還要做一個散列呢?只需用程序編寫標記並跳過散列即可。 – Ryanmt

回答

0
paxReference = ptcs.map do |ptc| 
    out_hash = {} 
    out_hash["ptc"] = ptc 
    out_hash["traveler"] = ADT_number.times.map {|i| {"ref" => i }} 
end 

這是在PTC的情況下是一個數組,而ADT_number不會爲每一個改變。如果ADT_number發生變化,那麼您將需要使用索引或類似的東西來獲取某些東西。

+0

顯然你已經編輯了你想要輸出的方式。這不是散列的傳統輸出。你可以編寫一個輸出函數來完成這個任務,但是我感覺到一些基本的東西可以幫你解決這個問題。 – Ryanmt

+0

我正在使用Savon構建SOAP請求 – content01