这是非常直接的确定,但我现在感觉脑力不足,并且无法解决这个问题....
我有这个JSON响应,只想获取密钥"价格"的所有值,并将它们全部转储到一个数组中,这样我就可以得到它们的平均值。
{
"status": "success",
"data": {
"network": "DOGE",
"prices": [
{
"price": "0.00028055",
"price_base": "USD",
"exchange": "bter",
"time": 1407184167
},
{
"price": "0.00022007",
"price_base": "USD",
"exchange": "cryptsy",
"time": 1407184159
}
]
}
}
到目前为止,这是我的代码:
data = ActiveSupport::JSON.decode(response)
status = data["status"]
if status == "success"
total = ......what do i need to do here?...
end
提前谢谢
:)
答案 0 :(得分:1)
How to sum array of numbers in Ruby?
除了你产生哈希,而不是数字。所以你钻进去了。
由于值是字符串,你必须将它们转换为浮点数来进行数学运算。
total = data["data"]["prices"].reduce(0.0) do |sum, hash|
sum + hash["price"].to_f
end
出于好奇,你是怎么被困的?您理解中的逻辑差距是什么阻碍了您找到解决方案?