将类数组的字符串转换为数组?

时间:2013-12-30 07:03:13

标签: ruby

我从api返回数据,这是一个数组数组。

puts response.body 
[["20131001", 7], ["20131002", 15], ["20131003", 5]]

我需要解决这个问题,以便将其插入到数据库表中。但是,这将作为字符串返回。

results = response.body
puts results.class
String

如果我将其转换为数组,则计数为1.

results_arr =* results
puts results_arr.class
Array
puts results_arr.count
1

将此转换为数组的最佳方法是什么,以便我可以访问元素?

更新:

我不知道为什么这被标记为偏离主题。我将提供此问题的示例。在我将response.body转换为带有= *运算符的数组(由results_arr.class确认)后,我用这个块解析了数组,得到了以下结果。

  results_arr.each do |date|
    puts date[0]
  end

这返回:

[

我认为问题在于将response.body中返回的String正确转换为数组。我想知道正确的方法。答案提供了解决方案。

1 个答案:

答案 0 :(得分:1)

使用Ruby的YAML

require 'yaml'

s = '[["20131001", 7], ["20131002", 15], ["20131003", 5]]'
YAML.load(s) # => [["20131001", 7], ["20131002", 15], ["20131003", 5]]

JSON#parse

require 'json'

s = '[["20131001", 7], ["20131002", 15], ["20131003", 5]]'
JSON.parse(s) # => [["20131001", 7], ["20131002", 15], ["20131003", 5]]