我正在创建一个rake任务,它解析JSON对象数组并需要遍历json数组的每个元素。这是我试图迭代的JSON对象的示例
response.body
{"result":"[{\"accounts\":\"1668\",\"accu\":\"568\",\"activePayingRate\":\"1.97757\"},
{\"accounts\":\"1554\",\"accu\":\"497\",\"activePayingRate\":\"2.18398\"},
{\"accounts\":\"2314\",\"accu\":\"491\",\"activePayingRate\":\"2.43795\"},
{\"accounts\":\"2825\",\"accu\":\"511\",\"activePayingRate\":\"2.33333\"}]","errorMsg":"success"}
我试过这个
result = JSON.parse(response.body)["result"]
result.each do |r|
puts r["accu"]
end
但后来我收到了这个错误
undefined method `each' for #<String:0x007fc81dc6fb78>
然后我尝试了这个
result = JSON.parse(response.body)
result.each do |r|
puts r["accu"]
end
但后来我收到了这个错误
can't convert String into Integer
答案 0 :(得分:1)
我想出了一个解决方案,但我根本不喜欢它。这是一个荒谬的解决方案,但它的工作原理。我在此解决方案中解析了两次响应
result = JSON.parse(response.body)["result"]
result = JSON.parse(result)
result.each do |r|
puts r["accu"]
end