JMP 14では、新しい HTTPリクエストオブジェクトがJSLで見つかりました。 私はこのAPIに出会いました、ここで見つけます: http://api.citybik.es/v2/ 。
このWebサービスを使用して、世界中のCity Bikeのデータ(および可用性)を特定できます。 エンドポイントは2つだけです http://api.citybik.es/v2/networks そして http://api.citybik.es/v2/networks/[id ] それで、それは働くのが非常に単純なRest APIです。 ただし重要な点は、Webサイトに送信するようにHTPP要求オブジェクトを構成する方法と、その情報を処理する方法です。 (情報を処理することはあなたが望むように関係することができます)
request = New HTTP Request(URL("http://api.citybik.es/v2/networks"), Method("Get"));
json = request << Send();
最初のエンドポイントからデータを取得するために必要なのはこれだけです。jsonはAPIから返されるデータです。 私はこのWebサービスを知っているので、返されるべきデータはCharacterであり、それは私がチェックするだけのJSONです。
!IsEmpty(json)
ただし、成功を確認してmimetypeが次のように返されることがあります。
request << Is Successful
request << Get Mime Type == "application/json"
スクリプトから作成された初期のJMPデータテーブルは、City Bikes Networkテーブルです。
最初のエンドポイントから返されたJSONデータから作成されます。 返されたデータを処理する方法は少なくとも2つあります。 最初のものは:
JSON to Data Table(json)
これはデータからJMPデータテーブルを作成しようとします。 "方形"または "タブルー"データの場合、これは非常にうまく機能します(そして速く)。 ただし、すべてのWebサービスが表形式のデータを返すわけではありません(City Bikesはそうではありません)。これにより、返されたデータを処理する2つ目の方法が得られます。
Parse JSON(json)
これはJSL連想配列を作成します。 つまり、JSLをJSLで自分で解析する必要はありませんが、データはどのように構成されているのかを知る必要があります。 それが鍵であるかどうかを知る必要があるでしょう=> 値ペアまたはキー=> 値ペア。 生のjsonの出力を次のようにキャプチャできるので、これはそれほど難しいことではありません。
write(json);
ログに記録して、お気に入りのJSONフォーマッタに貼り付けます。(私はChromeでJSON Editor Onlineアプリを使います)。これは次のようなことを意味します。
{
"networks": [
{
"company": [
"Bike U Sp. z o.o."
],
"href": "/v2/networks/bbbike",
"id": "bbbike",
"location": {
"city": "Bielsko-Bia\u0142a",
"country": "PL",
"latitude": 49.8225,
"longitude": 19.044444
},
"name": "BBBike"
},
...
...
}
このように見えることができます:
object {1}
networks {560}
0 {5}
company [1]
0 : Bike U Sp. z o.o
href: /v2/networks/bbbike
id: bbbike
location {4}
city: Bielsko-Biaia
country: PL
latitude: 49.8225
longitude: 19.044444
name: BBBike
...
...
言い換えれば、 [...] JSON Editor Onlineでは、JSL配列を扱っています。 あなたが見るとき {...} あなたはJSL連想配列を扱っています。
スクリプトについてもう1つ注意したいことは、次のことを利用することです。
Set Property("Event Handler", ...
だから私は次のエンドポイントに掘り下げることができます。
会社の列のハイパーリンクをクリックすると、 company_id 同じ行にURLを指定して新しいHTTPリクエストを作成します。
"http://api.citybik.es/v2/networks/" || thisTable:company_id[iRow]
これにより、City Bikeの会社に関するより詳細な情報を入手でき、以前と同じプロセスを使用して別のJMPデータテーブルを作成できます。
Graph Builderを使用してJSLに埋め込むことによって、2つのサンプルテーブルスクリプトを作成しました。
他にもたくさんのRest APIがありますので、ぜひ試してみてください。
楽しい、
ブライアンブーン