SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Yahoo! UI Library Ver.3 を使ってみよう

Yahoo! UI Library3(YUI3)データ処理に着目

Yahoo! UI Library Ver.3 を使ってみよう(5)

データが他のサイトにある時の処理

 データが他のサイトにあるときの読み込み方法を説明します。読み込みにはY.DataSource.Get({source:uri})を使用します。後述のリスト3の例題では、読み込むデータは、YUI3のダウンロードサイトにある例題で使用されているものを使います(http://developer.yahoo.com/yui/3/examples/datasource/datasource_get.html)。

 データはJSON形式でリスト2のようになっています。

[リスト2]例題に使用するJSON形式のデータの一部
{
    "query":{
        "count":"10",
        "created":"2009-06-04T05:15:06Z",
        "lang":"en-US",
        "updated":"2009-06-04T05:15:06Z",
        "uri":"http://query.yahooapis.com/v1/yql?q=...query%3D%22pizza%22",
        ...
        "results":{
            "result":[
                {
                    ...
                    "dispurl":"www.<b>pizzahut.com<\/b>",
                    "size":"16217",
                    "title":"<b>Pizza<\/b> Hut",
                    "url":"http://www.pizzahut.com/"
                },
                {
                    ...
                    "dispurl":"<b>mobile.papajohns.com<\/b>",
                    "size":"2315",
                    "title":"Papa John's Mobile Web",
                    "url":"https://mobile.papajohns.com/"
                },
                ...
            ]
        }
    }
}

 JSON(JavaScript Object Notation)とは、軽量のテキストベースのデータフォーマットのことで、JavaScriptがベースになっているものです。

 リスト2のデータを使ってグループ名「query.results.result」、フィールド名「title」のデータを読み込みます。例題の実行画面を図2に示します。

図2:リスト4の実行画面
図2:リスト4の実行画面

 リスト3をみてください。

[リスト3]データが他のサイトにある時(DataSource_Get_JSON.html)
YUI().use("dump", "node", "datasource", function (Y) {
     var myDataSource = new Y.DataSource.Get({source:"http://query.yahooapis.com/v1/public/yql?format=json&"});  //(1)
   myDataSource.plug(Y.Plugin.DataSourceJSONSchema, {
        schema: {
            resultListLocator: "query.results.result",
            resultFields: ["title"]
        }
    });             //(2)
     var myCallback = {
            success: function(e){
                for (var i in e.response.results){
                    alert(Y.dump(e.response.results[i].title));
                }
            },
            failure: function(e){
                alert("Could not retrieve data: " + e.error.message);
            }
        };          //(3)
    Y.one('#button').on("click",  function(e) {
    a="Web";
myDataSource.sendRequest("q=select%20*%20from%20search.web%20where%20query%3D%22"+a+"%22", myCallback);
     //      select * from search.web where query:"Web"  //(4)
    });
});
</script>

 (1)でuriを指定しています。(2)は読み込みデータの指定です。(4)のsendRequestの引数requestにはクエリー文を書いています。変数aに検索したい文字列を入れました。変数aを変更して検索をしてみてください。クエリー文は、指定したuriの固有の仕様です。(3)の表示は取り込んだtitleデータを順にalertで表示しています。

次のページ
phpなど他のスクリプトで作成されたデータを扱う時の処理

この記事は参考になりましたか?

Yahoo! UI Library Ver.3 を使ってみよう連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 横塚 利津子(ヨコツカ リツコ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5172 2010/06/11 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー