他サイト更新RSSぴぽぺ速報最新記事

JavaでiTunes APIを触ってみたったwwww

このエントリーをはてなブックマークに追加 LINEで送る

昨日の深夜の記事である、JavaでTwitterのJSON取得するにはどうしたらいいの?の続きとをやってみたいと思います。

昨日のTwitterでは面白みが無かったかなぁなんて思ったので、他のJSONを試してみます。何にしたらいいかわからないので、みんな大好きiTunesのJSONを試してみることに

まずは「iTuens JSON」でググってみる。するとAppleのSearch APIってのが見つかると思うのでそこを参考に

これを読むと必要なパラメーターがたくさん書いてあります。これは必要に応じて各自で追加してください。今回は管理人が大好きなsupercellのアルバムでも取得してみようと思います。
ということで、与えるパラメーターは

https://itunes.apple.com/search?
term=supercell
&country=JP
&lang=ja_jp
&entity=album
が最低限必要そう。くっつけると
http://itunes.apple.com/search?term=supercell&country=JP&lang=ja_jp&entity=album

開いて整理すると中身はこんな(多いので1つだけ表示しています)


{
    "resultCount": 1, 
    "results": [
        {
            "amgArtistId": 482126, 
            "artistId": 631665100, 
            "artistName": "supercell", 
            "artistViewUrl": "https://itunes.apple.com/jp/artist/supercell/id631665100?uo=4", 
            "artworkUrl100": "http://a5.mzstatic.com/us/r30/Music/v4/55/d7/b1/55d7b14b-3a33-ba15-efc2-ce41d6f44d0f/jacket_SRCL07488B01A_600over.100x100-75.jpg", 
            "artworkUrl60": "http://a4.mzstatic.com/us/r30/Music/v4/55/d7/b1/55d7b14b-3a33-ba15-efc2-ce41d6f44d0f/jacket_SRCL07488B01A_600over.60x60-50.jpg", 
            "collectionCensoredName": "Today Is A Beautiful Day", 
            "collectionExplicitness": "notExplicit", 
            "collectionId": 570090803, 
            "collectionName": "Today Is A Beautiful Day", 
            "collectionPrice": 2000.0, 
            "collectionType": "Album", 
            "collectionViewUrl": "https://itunes.apple.com/jp/album/today-is-a-beautiful-day/id570090803?uo=4", 
            "copyright": "℗ 2011 Sony Music Records Inc.", 
            "country": "JPN", 
            "currency": "JPY", 
            "primaryGenreName": "Anime", 
            "releaseDate": "2011-03-16T07:00:00Z", 
            "trackCount": 13, 
            "wrapperType": "collection"
        }
    ]
}

ここからは昨日のコードを使いまわします!まだ見ていない方は一読お願いします(>_<)とりあえず昨日作ったTwitterJsonクラスを変えちゃえばよさ気。変えるというかこれはモウ消しちゃって新しく作り直します。ItunesJsonクラスを作ってみる。上で整理したJSONを見ると2階層に分かれていることがわかります。ItunesJsonクラスは上の階層を書いて上げる。こんな感じ


import java.util.List;
public class ItunesJson {
        int resultCount;
        List<Results> results;
}

次は下の階層のクラスを用意してあげます。ちなみにGsonはゲッターセッター不要です。必要あらば付け足しても構いませんが、今回は如何にラクにコードを書くかって感じで進めてみます。Resultsクラスを作りました。ぜーーんぶ書いてあげます。これは全部書かないとエラーになるわけではありません。必要な要素だけでもいいのですが、あるものは書いておいたほうが後々ラクだったりします。


public class Results {
        int amgArtistId;
        int artistId;
        String artistName;
        String artistViewUrl;
        String artworkUrl100;
        String artworkUrl60;
        String collectionCensoredName;
        String collectionExplicitness;
        String collectionId;
        String collectionName;
        int collectionPrice;
        String collectionType;
        String collectionViewUrl;
        String copyright;
        String country;
        String currency;
        String primaryGenreName;
        String releaseDate;
        int trackCount;
        String wrapperType;
}

後はメインをちょっと書き換えてあげれば完成。


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import com.google.gson.Gson;
public class Itsokuhou{
        public static void main(String args[]){ 
                HttpURLConnection con = null;
                StringBuilder builder = new StringBuilder();
                try {
                        URL url = new URL("http://itunes.apple.com/search?term=supercell&country=JP&lang=ja_jp&entity=album");
                        con = (HttpURLConnection) url.openConnection();
                        con.setRequestMethod("GET");
                        con.setInstanceFollowRedirects(false);
                        //接続(´・ω・`)
                        con.connect();
        
                        BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
                        String line;
                        while ((line = reader.readLine()) != null) {
                                builder.append(line);
                        }
                } catch (Exception e) {
                        e.printStackTrace();
                }
                //とりあえず表示してみる
                System.out.println(builder.toString());
                Gson gson = new Gson();
                //この下ちょっと手直し
                ItunesJson itj = gson.fromJson(builder.toString(),ItunesJson.class);
                System.out.println("名前とうらるを表示");
                System.out.println(itj.resultCount);
                for(int n =0;n < itj.results.size();n++){
                System.out.println(itj.results.get(n).collectionName);//アルバム名
                }
        }
}

実行結果

うーーーん。これじゃ昨日と対して変わらない。もうちょっと視覚的に楽しめるようにHTMLコードでも書き出してみます。artworkUrl100といのうが100×100の画像なのでそれとタイトルとリンクでも付けてみましょう。もうやっていることは上と同じなので急ぎ足で


for(int n =0;n < itj.results.size();n++){
    String ijcode = "<p>" + itj.results.get(n).collectionName + "</p>"
    + "<img src=\"" + itj.results.get(n).artworkUrl100  + "\"/>";
    System.out.println(ijcode);
}

これでコンソールに表示されたHTMLコードをブログなどに埋め込むと下記のようになります☆彡

Supercell - EP

JSONはこれを応用させると色々なことができます。例えば当ブログの
Macで捗るオススメのアプリひたすら書いてくわ
はスクショもアプリのバナーも全てJSONからデータを取得して埋め込んでいます。

今回はパラメータを固定にしていますが、入力フォームから受け取ったデータをパラメータに取り込めばプチ検索システムの完成です。たくさんのサービスがAPIを公開しているので面白そうなのを探してみてください☆彡

sosu



このエントリーをはてなブックマークに追加 LINEで送る
↑この記事をみんなに広めよう↑

↓ランキングクリックよろしくお願いします↓
 にほんブログ村 2ちゃんねるブログ 2ちゃんねる(ニュース)へ にほんブログ村 2ちゃんねるブログ 2ちゃんねる(ゲーム)へ

コメントをどうぞ

メールアドレス
コメント本文

  • あなたのコメントが、更にこの記事をおもしろくします。

プロフィール

PipopeFavicon

ぴぽぺ速報です。

下らないニュース、
おもしろい事件、
ゲームなど色々扱っております。
1日約70記事です。

Twitter
RSS

↓ランキングクリックよろしくお願いします↓
 にほんブログ村 2ちゃんねるブログ 2ちゃんねる(ニュース)へ にほんブログ村 2ちゃんねるブログ 2ちゃんねる(ゲーム)へ

新着情報

逆アクセスランキング

アクセスカウンター

  • 7現在の記事:
  • 1536503総閲覧数:
  • 170今日の閲覧数:
  • 411昨日の閲覧数:
  • 552581総訪問者数:
  • 78今日の訪問者数:
  • 181昨日の訪問者数:
  • 194一日あたりの訪問者数:
  • 1現在オンライン中の人数:

genzou1919 world