2013-03-03 3 views
0

У меня есть эта строка:Как преобразовать сериализованную строку массива в массив?

temp = "["minutes", "hours"]" 

Если я это сделать:

temp[1..-2].split(", ") 

Я получаю массив из 2 элементов, как это:

[0] = ""minutes"" 
[1] = ""hours"" 

Как я могу избежать иметь двойной кавычки?

+3

Это похоже на JSON. Возможно, вы должны использовать парсер JSON? –

+1

'require 'json'' и' JSON.parse temp' –

+0

http://stackoverflow.com/questions/5410682/parsing-a-json-string-in-ruby –

ответ

2

еще одно:

the_string.scan(/\"(\w+)\"/).flatten 
=> ["minutes", "hours"] 
1

Вобще:

temp.gsub("\"", "")[1..-2].split(", ") 

Или, как только у вас есть массив с двойными кавычками на каждом элементе:

temp.map{|e| e.squeeze("̣\"")} 
Смежные вопросы