将嵌套数组的字符串表示形式转换为Array

1 ruby arrays string ruby-on-rails ruby-on-rails-4

我有一个数组的字符串表示形式:

val1 = "[[\":one\", \":two\"], [\":four\", \":one\"]]"
Run Code Online (Sandbox Code Playgroud)

将其转换为以下内容的最佳方法是什么?

val2 = [[:one,:two], [:four, :one]]
Run Code Online (Sandbox Code Playgroud)

阵列的尺寸可以是25 x 25.

shi*_*vam 8

用途JSON.parse:

require 'json'
val2 = JSON.parse val1
# => [[":one", ":two"], [":four", ":one"]]
Run Code Online (Sandbox Code Playgroud)

或者你可以将它们转换为这样的符号:

val2.map{|a,b| [a.sub(/^:/,'').to_sym, b.sub(/^:/,'').to_sym]}
# => [[:one, :two], [:four, :one]]
Run Code Online (Sandbox Code Playgroud)