我正在拨打api电话并收到以下回复(很长时间,因此我展示了重要部分):
... "fields":{"count"_1:["0"],"count_2":["5"]} ...
当我这样做时:
call["fields"]["count_1"]
返回
["0"]
我需要它给我一个整数。我试过了:
call["fields"]["count_1"][0]
我也尝试过:
call["fields"]["count_1"][0].to_i
我在Rails中运行它,它给了我错误:
undefined method `[]' for nil:NilClass
但它不起作用。
答案 0 :(得分:2)
call["fields"]["count_1"][0].to_i # => 0
答案 1 :(得分:2)
一些提示:
尝试在JSON.parse(...)
中包装API响应。也就是说,如果您没有通过已经执行此操作的gem进行调用。这可能是require 'json'
。
尝试call['fields']['count_1'].first.to_i
进行一些调试:检查call.class
,call['fields'].class
和call['fields']['count_1'].class
的值。最后一个肯定是数组。
添加if
子句以检查call['fields'][['count_1'].is_empty?
。
寻找错别字:)
答案 2 :(得分:0)
由于某种原因,API调用使零为零而不是零。谢谢你的帮助。