質問
(楽しみのために)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",
}
]
}
解決
これはすでに行われていると思います。
この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);
他のヒント
いいえ、RSSはXMLベースのフォーマットであり、JSONはある種の方言ではなく、異なる言語です。 RSSリーダーはJSONを理解しません。
あなたの質問は「中国語でフランス語を話せますか?」
RSS仕様(XML部分を除く)は、この場合に準拠する有用な仕様ですか?
さらに別のシンジケーションフォーマットを作成する場合は、Atomをベースとして使用することをお勧めします。私見ははるかにきれいで、より一貫性のあるデザインを持ち、過去のアイテムの信頼できる更新、要約と完全なコンテンツなどの区別などの便利な機能を備えています。
これが既に行われていたかどうか疑問に思っていました。
Flickrの JSON出力形式。さらに、 lolcode feed もあります。 。
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);
クライアントがフィードを読むには、JSONの詳細が何であれ、カスタムサポートが必要であるというのは正しいことです。そのため、カスタムフィードリーダーを作成してその情報を使用するか、誰かがJSONフィード標準を提案する必要があり、広く採用される必要があります。
まあ、あなたの欲望はようやく満たされたと思います、友人!
JSONフィードをご覧ください。この記事を書いている時点ではまだ1週間しか経っていませんが、すでに勢いを増しており、現在 Feedlyによってサポートされています。 、 Feedbin 、ニュースエクスプローラー、 NewsBlur など、常に追加されています。
RSSのJSONバージョンを生成するときに使用する標準を選択する必要がある場合は、必ずJSONフィードを選択します。
RSSをJSONにシリアル化する方法はたくさんあります。それらはすべてほとんど同じように機能します。要素と属性はプロパティ名になり、値はプロパティ値になります。 Piyush Shahの手法。これは.NET実装です。
XSLTを使用して任意のXMLをJSONに変換するのは非常に簡単で、Googleで6つのサンプルを見つけることができます。
これが一貫して行われている限り、RSS仕様のデータ構造を複製するように設計されたオブジェクトモデルを処理できるJavaScriptは、JSONがデシリアライズするオブジェクトモデルを処理できる必要があります。
このJSONの送信先は誰ですか?それが本当の質問です。
まあ、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);
これはかなり古い質問であり、今では無関係かもしれません。
ただし。 RSSのようなフィードをJSONで公開する場合は、急速に普及しつつある新しい形式を使用することをお勧めします。 JSONFeed( https://jsonfeed.org )。
この形式を集約/理解できるプログラムがあります。
XSLT 3.0 を使用して、XMLをJSONに変換し、XMLに戻すことができます。再び。 JSONへの変換を行う方法の詳細については、こちらをご覧ください:
https: //www.xml.com/articles/2017/02/14/why-you-should-be-using-xslt-30/ 。