2016-04-15 58 views
-2

我有一個字符串可以說:如何將複雜的字符串轉換爲數組ruby?

str = "[[{/"a/":/"1/"},{/"b/":/"2/"},{/"c/":/"3/"}]]" 

我需要的是哈希值的數組:

​​

如果我使用分裂,那麼它也不會放棄希望的解決方案。 請幫助。

+0

您的意思是「散列數組」嗎? '[[//ab /「:/」1 /「},{/」bc /「:/」2 /「},{/」cd /「:/」3 /「}]]'not一個語法上有效的「字典」或散列數組。 – lurker

+0

我的不好,我的意思是隻有哈希數組。 – dips

+2

它仍然沒有語法上的有效性。 – lurker

回答

1

假設你有一個JSON字符串,那麼你所需要做的就是require "json"arr = JSON.parse(str)。在下面的代碼中,我已經糾正了您的字符串是有效的JSON:

require "json" 

str = "[[{\"a b\":\"1\"},{\"b c\":\"2\"},{\"c d\":\"3\"}]]" 
arr = JSON.parse(str) 
# => [ [ { "a b" => "1" }, { "b c" => "2" }, { "c d" => "3" } ] ] 

請注意,您的JSON由帶本身具有三個元素的數組的單個元素的數組。要獲得「內部」陣列,請按照與任何陣列一樣進行操作:

inner_arr = arr[0] 
# => [ { "a b" => "1" }, { "b c" => "2" }, { "c d" => "3" } ] 
+0

謝謝你的工作! – dips

相關問題