2014-10-07 80 views
2

這裏是代碼和輸出,其中inbound_text是一個字符串,你可以看到:爲什麼我的ruby字符串變成數組?

puts inbound_text 
data = {:input => "#{inbound_text}", 'user_key' => ENV['USER_KEY'], 'client_name' => "#{bot_client_name}" } 
puts data 

輸出:

changed sms_text to inbound_text 
{'input' =>"[\"changed sms_text to inbound_text\"]", "user_key"=>"3b9ccb48e734fce6b982a9c1c2cef301", "client_name"=>"14155086888"} 

我想不通爲什麼:輸入不斷得到一個數組。正如你所看到的,client_name也是一個字符串,但似乎沒有類似的問題。

+2

它不是一個數組,它是一個字符串,你可能給了inbound_text一個數組,並且用#{}將它轉換爲一個字符串。 – daremkd 2014-10-07 21:43:02

回答

0

嘗試做:

inbound_text = inbound_text.first 

初始化數據散列之前。

你可能已經inbound_text設置爲一個實際的數組,你以爲像

inbound_text = ["changed sms_text to inbound_text"] 

一個單元素數組是想給你的陣列中的文本。這是不是這樣的:

["changed sms_text to inbound_text"].to_s #=> "[\"changed sms_text to inbound_text\"]" 

所以你可能只是想獲得數組中的第一個(也是唯一的元素),然後執行計算。

+0

關閉---我收到的有效載荷看起來像一個帶有puts的字符串,但.inspect實際上是一個像你說的數組,所以[0]或者可能.to_s會得到它。 – Angela 2014-10-08 18:51:53

相關問題