14.REST and JSON

REST

RESTは「REpresentational State Transfer」の略で、大まかに言えば、アドレス(URL)とHTTPのメソッド(GETなど)を組み合わせて、サーバー上のデータを操作する仕組みです。

RESTは、Roy Fieldingという方が、2000年に発表した博士論文で提唱されたアーキテクチャスタイルです。Roy FieldingさんはHTTP仕様の策定者の一人であったことから、HTTPはRESTの基準をよく満たしています。

RESTの例として、WordPress JSON REST API (WP API, http://wp-api.org/) あります。それを利用して、Javaなどから最新の記事の取得、記事の投稿、写真の添付などが可能です。

JSON

JSON(ジェイソン、JavaScript Object Notation)は、JavaScriptにおけるオブジェクトの表記法をベースとした軽量なデータ記述言語である。

JSONの紹介
http://www.json.org/json-ja.html

このフォーマットの特徴は、

  1. 名前/値のペアで表記される、連想配列のような構造
  2. カンマで区切られたリスト(配列)のような構造

オブジェクト

オブジェクトは中括弧({ , })で囲み、中の要素は文字列/値で表現します。複数の要素を利用する場合は、カンマで区切り、続けて記述します。

{文字列:値,文字列:値,..文字列:値}

配列

配列は大括弧([ , ])で囲み、中の要素を値の連続(0個以上)で表現します。複数の要素を利用する場合は、カンマで区切り、続けて記述します。

[ 値, 値, ..., 値]

値は以下の7種類です

  • 文字列
  • 数値
  • オブジェクト
  • 配列
  • true
  • false
  • null

文字列は2重引用符(“)で囲まれます。

学バス時刻表の取得

JSONArray json = loadJSONArray("http://busapp.wasedaonline.com/api/getvalue/?tag=20");
JSONObject content = json.getJSONObject(2);
String data = content.getString("post_content");
println(data);

参考

  • http://labo.mamezou.com/special/sp_013/sp_013_001.html — RESTのコンセプトと特徴
  • http://www.agilegroup.co.jp/technote/java-rest-client01.html — JavaでRESTクライアントを作成する【第一回】
  • http://thinkit.co.jp/article/70/1/page/0/1 — JSONってなにもの?
  • http://d.hatena.ne.jp/seinzumtode/20130426/1366934641 — JavaでJSONを使う
  • http://gootara.org/library/2014/04/javaapijsonjdk1618.html — Java SEの標準APIだけでJSONを扱うサンプル(JDK 1.6以降、1.8も対応)

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


Related Post

15.Summary15.Summary

Webアプリケーション作成(コーディング・テスト、デバッグ、仕上げ)、全員発表する 発表課題: オープンデータの取得と利用 使用言語:processing もしくは Java 発表時間:5分程度 課題: オープンデータの取得と利用 オープンデータの材料選び オープンデータの取得 (URL) オープンデータの利用 (processing もしくは Java) オープンデータ応用のWEB公開 (Google sitesに埋め込み) ヒント: これまで演習したプログラムの組み合わせが必要です。 nextbus, […]

6.Stack and Queue6.Stack and Queue

キューとスタックは、古典的なデータ構造として広く知られているものですが、 実装上はリストの一種と考えることができます。 キュー キュー (Queue) は「先入れ先出し (First-In First-Out, FIFO)」を表すデータ構造です。 データを取り出す際、先に格納したものから順に取り出します。 銀行や病院やたい焼き屋の待ち行列 (先に並んだ人からサービスを受ける) コンピューターでプリンタへの出力処理や、ウィンドウシステムのメッセージハンドラ、プロセスの管理など、データを入力された順番通りに処理する必要がある処理に用いられる。 データを追加する操作をエンキュー(enqueue)。データを取り出す操作をデキュー(dequeue)という。 スタック スタック(Stack)は、 「あと入れ先出し (Last-In First-Out, LIFO)」あるいは「先入れあと出し(First-In […]

10.String Searching10.String Searching

文字列を検索する – indexOf/lastIndexOfメソッド 文字列に含まれる部分文字列を検索するには、indexOfメソッドを利用します。indexOfメソッドは、指定された部分文字列が最初に登場した位置を、文字列の先頭を0としたインデックス番号で返します。文字列が見つからなかった場合、戻り値は-1となります。第2引数で、検索開始位置を指定することもできます。 1 2 3 String str = "にわにはにわにわとりがいる"; System.out.println(str.indexOf("にわ"));  // 結果:0 System.out.println(str.indexOf("にわ", 1));   // 結果:4 部分文字列を文字列の末尾から検索するならば、lastIndexOfメソッドを利用してください。 1 […]