質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

2回答

866閲覧

APIで取得したデータを抜け出せない

shunki1023

総合スコア22

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/07/16 13:58

編集2020/07/16 14:23

OpenWeatherMapのAPIを使って大阪の気象データをJSON形式で抜き出して出力したいです。

しかし、抜き出される(出力される)データが
test({"coord"...
と小括弧()で囲まれていて配列の要領で抜き出すことができません。

test()内にある配列をとってくるにはどうすればいいでしょう。

ruby controllerにて

1 require 'uri' 2 require 'net/http' 3 require 'openssl' 4 5 url = URI("https://community-open-weather-map.p.rapidapi.com/weather?callback=test&id=2172797&lang=Japan&units=%2522metric%2522%20or%20%2522imperial%2522&q=Osaka") 6 7 http = Net::HTTP.new(url.host, url.port) 8 http.use_ssl = true 9 http.verify_mode = OpenSSL::SSL::VERIFY_NONE 10 11 request = Net::HTTP::Get.new(url) 12 request["x-rapidapi-host"] = '指定された値' 13 request["x-rapidapi-key"] = '指定された値' 14 15 response = http.request(request) 16 result1 = response.body

ruby

1<%= result1 %>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YakumoSaki

2020/07/16 14:03

現状のソースコードを乗せると回答が付きやすいかもしれません。 さすがにこれだけでは、プログラムがおかしいです。としか言えないです。
shunki1023

2020/07/16 14:24

ソースコード掲載させていただきました。
gouf

2020/07/17 03:47

「出力されるデータ」を、他の人が再利用できる完全な形で提示することはできますか?
guest

回答2

0

大変申し訳ございませんが、検証せずにファイルを消してしまいました。

データが悪いのか検証するために他のデータで試し、再びエラーになったため処理に問題があると判断。質問にお書きしたJSONファイルと処理データをファイルごと消去してしまいました。

後に用いた他の事例に関してはformatを指定し忘れていたといううっかりミスでした。

質問事項の状況も同様にうっかりミスであったと思われます。お恥ずかしい。

お応えいただいた皆様、ご協力くださりありがとうございました!

投稿2020/07/17 14:47

shunki1023

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

リクエストパラメータから「callback=test&」を削除したらどのようになるでしょうか?

どうしてもダメならレスポンスは「test({...})」となっているはずなので、
最初の「test(」と最後の「)」をレスポンスから削除してJSONに変換すればよいかと思います。

投稿2020/07/17 03:42

tabuu

総合スコア2449

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問