我正在使用sinatra和ruby twilio-ruby gem。我用以下代码获得了一个数字列表:
@numbers = @subaccount.available_phone_numbers.get('US').local.list({:area_code => '858'})
puts "Available numbers:"
num = @numbers.each {|num| puts num.phone_number}
{number:num}.to_json
在终端窗口中显示一个列表,如下所示:
Available numbers:
+18589240128
+18588779651
+18582231372
+18589141380
+18588779811
+18589141390
+18582231256
等。为简洁起见。
但在网站页面上显示为:
{"number["#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#"]}
所以我的问题是:如何将返回信息从Twilio转换为可用的json,以便我可以通过jquery getJSON访问它,然后将其打印在我的HTML页面上?
非常感谢......
答案 0 :(得分:1)
更改这两行并尝试一次:
num = Array.new
@numbers.each {|n| num << n.phone_number }
{number:num}.to_json
答案 1 :(得分:0)
Twilio开发者传道者在这里。
我不确定这里到底发生了什么,因为我无法在测试中得到相同的结果。但是,我认为这与您使用puts
和each
的方式有关。
您似乎试图将num
数组作为电话号码数组,但是each
只返回原始数组,因此您将保留一组对象。
尝试以下方法:
@numbers = @subaccount.available_phone_numbers.get('US').local.list({:area_code => '858'})
puts "Available numbers:"
num = @numbers.map {|num| puts num.phone_number; num.phone_number }
{number:num}.to_json
Map将返回一个数组,其中包含块的结果而不是原始数组,因此这将打印出puts
的电话号码,然后返回电话号码本身。那么你的num
数组只是这些电话号码的数组,应该在json中正确读出。
如果有帮助,请告诉我。