我从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正确转换为数组。我想知道正确的方法。答案提供了解决方案。
答案 0 :(得分:1)
使用Ruby的YAML
库
require 'yaml'
s = '[["20131001", 7], ["20131002", 15], ["20131003", 5]]'
YAML.load(s) # => [["20131001", 7], ["20131002", 15], ["20131003", 5]]
require 'json'
s = '[["20131001", 7], ["20131002", 15], ["20131003", 5]]'
JSON.parse(s) # => [["20131001", 7], ["20131002", 15], ["20131003", 5]]