<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:knowledge="http://knowledge.livedoor.com/-/spec/1.0/" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">
<channel>
<language>ja-jp</language>
<title>livedoor ナレッジ - JSON</title>
<link>http://knowledge.livedoor.com/rss/tag/JSON</link>
<pubDate>Tue, 22 Dec 2009 03:34:47 +0900</pubDate>
<lastBuildDate>Sat, 31 May 2008 19:20:00 +0900</lastBuildDate>
<generator>http://knowledge.livedoor.com/</generator>
<description>livedoor knowledge - JSON</description>
<copyright>Copyright 1996- livedoor Co.,Ltd.</copyright>
<image>
    <title>livedoor knowledge</title>
    <url>http://knowledge.livedoor.com/img/cmn/noimg_m.gif</url>
    <link>http://knowledge.livedoor.com</link>
    <width>43</width>
    <height>43</height>
</image>
<openSearch:totalResults>1</openSearch:totalResults>
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:itemsPerPage>15</openSearch:itemsPerPage>
<item>
    <title>人気記事プラグインを作っていて、分からないことがあったので教えてください。</title>
    <link>http://knowledge.livedoor.com/34443</link>
    <description>人気記事プラグインを作っていて、分からないことがあったので教えてください。
livedoor ProfileのJSONPを使ってブログの人気記事プラグインを作っていたら分からないことがありました。

↓のようにJSONPのscriptタグをcreateElementで追加して、JSONのデータからリストを挿入するスクリプトをちょっと作ってみたのですが
 &amp;lt;div id=&amp;quot;poplist&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;!--
 
 // オブジェクト
 function LDPJson(cat) {
   this.category = cat;
 }
 
 // JSONPコールバック関数のインクルードメソッド
 LDPJson.prototype.callJsonp = function(par) {
 
   // JSONPのURL作成,パラメータ追加
   par.callback += &amp;apos;_&amp;apos; + this.category.match(/\w+/g).join(&amp;apos;&amp;apos;);
   var url = &amp;apos;http://portal.profile.livedoor.com/api/&amp;apos; + this.category + &amp;apos;?&amp;apos;;
   var u = [];
   for (var i in par) u.push(i + &amp;apos;=&amp;apos; + par[i]);
   url += u.join(&amp;apos;&amp;amp;&amp;apos;);
 
   // JSONPをインクルード(コールバック関数の実行)
   var elScript = document.createElement(&amp;quot;script&amp;quot;);
   elScript.type = &amp;apos;text/javascript&amp;apos;;
   elScript.src = url;
   document.getElementsByTagName(&amp;apos;head&amp;apos;)[0].appendChild(elScript);
 };
 
 // 人気記事のコールバック関数(JSONP側で実行)
 function callback_clappop(json) {
   
   if (json.status == &amp;quot;success&amp;quot;) {  // JSONステータスチェック
     var img = &amp;apos;&amp;lt;img src=&amp;quot;http://portal.profile.livedoor.com/img/cmn/clapping.gif&amp;quot; /&amp;gt;&amp;apos;;
     var t = &amp;apos;&amp;lt;ul class=&amp;quot;poplist&amp;quot;&amp;gt;&amp;apos;;
     var j = json.entries;
     for (var i = 0; i &amp;lt; json.entries.length; i++) {
       t += &amp;apos;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&amp;apos; + j[i].link + &amp;apos;&amp;quot;&amp;gt;&amp;apos; + j[i].title + &amp;apos;&amp;lt;/a&amp;gt; &amp;apos; + img + &amp;apos;×&amp;apos; + j[i].count + &amp;apos; (&amp;apos; + j[i].date + &amp;apos;)&amp;lt;/li&amp;gt;&amp;apos;;
     }
     document.getElementById(&amp;apos;poplist&amp;apos;).innerHTML = t + &amp;apos;&amp;lt;/ul&amp;gt;&amp;apos;;
   }
 }
 
 // オブジェクト作成
 var LDBPopList = new LDPJson(&amp;apos;clap/pop&amp;apos;);
 
 // JSONPを呼び出す
 LDBPopList.callJsonp({ row:5, livedoor_id:&amp;apos;ユーザID&amp;apos;, escape:1, callback:&amp;apos;callback&amp;apos; });
 
 //--&amp;gt;&amp;lt;/script&amp;gt;
たまにJSONの項目にあるstatusが&amp;apos;wait&amp;apos;になってデータが取得できないことがあります。
その場合もう一度データを取得したいのですが,何か良い方法がありましたら教えてください。
ヒントや雑感などでも結構です。

よろしくお願いいたします。</description>
    <pubDate>Sat, 31 May 2008 19:20:00 +0900</pubDate>
    <guid isPermaLink="true">http://knowledge.livedoor.com/34443</guid>
    <author>imq</author>
    <category domain="http://knowledge.livedoor.com/category/114002">livedoorブログ</category>
    <knowledge:feed type="question">
        <knowledge:authorId>13707</knowledge:authorId>
        <knowledge:authorLink>http://knowledge.livedoor.com/profile/13707</knowledge:authorLink>
        <knowledge:authorIcon>http://knowledge.livedoor.com/img/my/profile_img.gif</knowledge:authorIcon>
        <knowledge:authorThumbnail>http://knowledge.livedoor.com/img/cmn/noimg_m.gif</knowledge:authorThumbnail>
        <knowledge:answers>0</knowledge:answers>
        <knowledge:closed label="お蔵入り">Tue, 01 Jul 2008 06:10:05 +0900</knowledge:closed>
    </knowledge:feed>
</item>
</channel>
</rss>
