22

私は (楽しみのために) RSS フィードを書いており、ここで仕様を見ていました。

RSS は XML の方言です。すべての RSS ファイルは、World Wide Web Consortium (W3C) Web サイトで公開されている XML 1.0 仕様に準拠している必要があります。

これは明らかに、JSON オプションを選択した場合、「純粋な」RSS を提供していないことを意味します。とはいえ、仕様の残りの部分に準拠した場合、(カスタマイズされた) リーダーがそれを解析できる可能性はありますか?

別の言い方をすれば、仕様に準拠しているが、XML の代わりに JSON を使用すると、使用可能な RSS フィードになるのでしょうか?

編集 私は自分自身を明確にしたかどうかわかりません。関連する XML はありません。代わりに JSON を使用して、RSS (XML) に似たものを書きたいと考えています。明らかに、そのようなフィードのリーダーは、JSON 形式を理解するように作成する必要があります。これがすでに行われていたかどうかは疑問でした。この方法でフィードを提供するサービスはありますか? このフォーマットを集約/理解できるプログラムはありますか? RSS 仕様 (XML 部分を除く) は、この場合に準拠するのに役立つ仕様ですか?

rg

{
"title":"example.com",
"link":"http://www.example.com/",
"description":"Awesome news about junk",
"items":[
    {
        "title":"An article",
        "link":"http://www.example.com/an-article",
        "descrition":"Some sample text here",
        "pubDate":"2008-10-27 11:06 EST",
        "author":"example author",
    },
    {
        "title":"Second",
        "link":"http://www.example.com/Seond",
        "descrition":"Some sample text here",
        "pubDate":"2008-10-25 23:20 EST",
        "author":"author mcauthor",
    },
    {
        "title":"third article",
        "link":"http://www.example.com/third-article",
        "descrition":"Some sample text here",
        "pubDate":"2008-10-25 23:18 EST",
        "author":"some other author",
    }
]
} 
4

9 に答える 9

22

いいえ、RSS は XML ベースの形式であり、JSON はある種の方言ではなく別の言語です。RSS リーダーは JSON を理解できません。

あなたの質問は、「中国語でフランス語を話せますか?」という質問に似ています。

于 2008-10-29T12:24:50.553 に答える
14

これはすでに行われていると思います。

この jQuery 拡張機能を見てみましょう: jFeed - RSS/ATOM フィード パーサー

jQuery.getFeed(options);

オプション:

  • URL:
  • データ:
  • 成功:

例:

jQuery.getFeed({
       url: 'rss.xml',
       success: function(feed) {
           alert(feed.title);
       }
   });

この場合、「feed」は JavaScript オブジェクトになることに注意してください。JSON を使用してこれを渡したい場合は、javascript JSON ユーティリティを使用できます。

例:

var myJSONText = JSON.stringify(feed);
于 2008-10-30T21:00:50.077 に答える
9

RSS 仕様 (XML 部分を除く) は、この場合に準拠するのに役立つ仕様ですか?

さらに別のシンジケーション形式を発明したい場合は、Atom をベースとして使用することをお勧めします。私見では、はるかにクリーンで一貫性のあるデザインがあり、過去のアイテムの信頼できる更新などの便利な機能があり、要約と完全なコンテンツを区別するなど.

これがすでに行われていたかどうかは疑問でした。

Flickr にはJSON 出力形式があります。lolcode フィードもあります。

于 2008-11-26T23:16:11.340 に答える
7

フィードを読み取るクライアントは、JSON の詳細が何であれ、カスタム サポートが必要であることは間違いありません。そのため、その情報を消費するカスタム フィード リーダーを作成するか、誰かが JSON フィード標準を提案して広く採用する必要があります。

ええと、あなたの願いはついに叶ったと思います、友よ!

JSON フィードを見てください。この記事を書いている時点でまだ 1 週間しか経っていませんが、 FeedlyFeedbinNews Explorer、 NewsBlur などによってサポートされ、常に追加されており、すでに勢いを増しています。

RSS の JSON バージョンを生成するときに使用する標準を選択する必要がある場合、私は間違いなく JSON フィードを選択します。

于 2017-05-25T16:38:24.130 に答える
3

Json.NET - http://james.newtonking.com/projects/json-net.aspx - は、あらゆる XML ドキュメントを JSON に変換する機能をサポートしています。

XmlDocument doc = new XmlDocument();

doc.LoadXml(@"<?xml version=""1.0"" standalone=""no""?>
<root>
  <person id=""1"">
    <name>Alan</name>
    <url>http://www.google.com</url>
  </person>
  <person id=""2"">
    <name>Louis</name>
    <url>http://www.yahoo.com</url>
  </person>
</root>");


string jsonText = JavaScriptConvert.SerializeXmlNode(doc);
//{
//  "?xml": {
//    "@version": "1.0",
//    "@standalone": "no"
//  },
//  "root": {
//    "person": [
//      {
//        "@id": "1",
//        "name": "Alan",
//        "url": "http://www.google.com"
//      },
//      {
//        "@id": "2",
//        "name": "Louis",
//        "url": "http://www.yahoo.com"
//      }
//    ]
//  }
//}

XmlDocument newDoc = (XmlDocument)JavaScriptConvert.DeerializeXmlNode(jsonText);

Assert.AreEqual(doc.InnerXml, newDoc.InnerXml);
于 2008-10-30T21:05:55.603 に答える
2

RSS を JSON にシリアライズするには、さまざまな方法があります。それらはすべてほぼ同じように機能します。要素と属性はプロパティ名になり、値はプロパティ値になります。たとえば、.NET 実装である Piyush Shah の手法を参照してください。

XSLT を使用して任意の XML を JSON に変換するのは簡単で、Google でその例を 6 つ見つけることができます。

これが一貫して行われる限り、RSS 仕様のデータ構造を複製するように設計されたオブジェクト モデルを処理できる JavaScript は、JSON が逆シリアル化されるオブジェクト モデルを処理できるはずです。

この JSON を誰に送信する予定ですか? それが本当の質問です。

于 2008-10-29T19:39:50.270 に答える
1

JavaScript アプリを開発している場合は、RSS フィードを JSON として取得して、クロスドメイン クエリの問題を解決したいと思うかもしれません。RSS を JSON に変換する信頼できる Google 提供のソリューションがあります。jQuery 愛好家のために、汎用の RSS から JSON へのコンバーター プラグインがあります。

例:

$.jGFeed('http://twitter.com/statuses/user_timeline/26767000.rss',
  function(feeds){

    // feeds is a javascript object with RSS content

  }, 10);
于 2009-11-07T12:55:09.783 に答える