私のサーバーからJSONハッシュを取得して、それを私のrubyスクリプトで読み込もうとしています。JSONはRubyの文字列をIntegerに暗黙的に変換しません。
私は、関数からこれを呼んでいる:
ここdef get_functions(serial_number)
response = HTTParty.get("#{get_host_url}/v1/devices/#{serial_number}.json")
data = response['scan_option']
return data
end
が返されるJSONです:それは、私はちょうど私の心を失うんだ場合を除き、しかし間違った値を返すしているようだ
{"can_scan"=>true, "can_brute_ssh"=>false, "can_brute_telnet"=>false, "can_brute_voip"=>false, "can_brute_smtp"=>false, "can_brute_pop3"=>false, "can_google_crawl"=>false, "can_scan_external_ip"=>false, "scan_ip_list"=>["10.10.10.1"], "exclude_ip_list"=>[]}
data.each do |d|
@can_scan = d['can_scan']
# ....
end
は、しかし、これはエラーを投げている:次のコードに読み込まれ
no implicit conversion of String into Integer
地球上であなたはそのコードが動作するように期待するのはなぜ?あなたの質問のJSONはオブジェクト/ハッシュであり、反復処理が可能な配列ではありません。あなたが望むのは 'data [" scan_option "]。try(:[]、" can_scan ")'です。 – max
申し訳ありませんが、Postmanからコピーしました...コードを実際のJSONをコンソールから取得して更新しました。 – Godzilla74
まだハッシュです... – max