2008-10-29 181 views
15

我正在寫一個RSS源(爲了好玩),並且正在查看規範here我可以在JSON中使用RSS嗎?

RSS是XML的一種方言。所有RSS文件必須符合萬維網聯盟(W3C)網站上發佈的XML 1.0規範。

很明顯,這意味着如果我選擇JSON選項,我不提供「純」RSS。也就是說,如果我符合規範的其餘部分,是否有可能(定製的)讀者能夠解析它?換句話說,如果我符合規範,但使用JSON而不是XML,它是一個可用的RSS提要?

編輯 我不確定我是否讓自己清楚。 不涉及XML。我想用類似於RSS的東西(這是XML)來寫東西。很顯然,這樣一個feed的讀者需要寫出來理解JSON格式。 我想知道這是否已經完成。有沒有服務以這種方式提供Feed?有沒有可以聚合/理解這種格式的程序。在這種情況下,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", 
    } 
] 
} 
+1

唉,不,JSON有點太晚了。無論如何,+1只是爲了開箱即用。 – 2009-11-07 13:04:31

回答

14

我相信這已經完成了。

看看這個jQuery的擴展:jFeed - RSS/ATOM feed parser

jQuery.getFeed(options); 

選項:

  • 網址:
  • 數據:
  • 成功:

實施例:

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

注意,在這種情況下, '進料' 是javascript對象。如果您想使用JSON傳遞此信息,則可以使用javascript JSON utility

例子:

var myJSONText = JSON.stringify(feed); 
+3

jfeed提示+1。現在在Github上,並定期維護https://github.com/jfhovinne/jFeed – johnhunter 2011-03-01 12:23:31

19

沒有,RSS是一種基於XML的格式和JSON是一種不同的語言,而不是某種方言。 RSS閱讀器不會理解JSON。

你的問題類似於問'我能說中文嗎?'

+4

因此,JSON沒有達成一致的標準作爲RSS提要(不是真正的RSS,而是基於同一個想法的東西)?似乎這將是一件好事。 RSS2.0可能是一個好的開始。 – Hyposaurus 2008-10-29 12:49:43

+2

@Hyposaurus我認爲[我們到達那裏](https://jsonfeed.org/version/1)。 – 2017-05-22 14:25:02

2

有很多不同的方式將RSS序列化爲JSON。它們的工作方式幾乎相同:元素和屬性成爲屬性名稱,值成爲屬性值等。請參閱Piyush Shah's技術,例如,這是一種.NET實現。

使用XSLT轉化任意XML到JSON是很簡單的,你可以找到它在谷歌半打的例子。

只要這是一貫做,JavaScript代碼能夠處理旨在複製RSS規範的數據結構應該能夠處理的JSON反序列化到對象模型的對象模型。

你打算把這個JSON發送給誰?這是真正的問題。

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); 
9

是的RSS規範(SAN的XML部分)一個有用的規格,以符合在這種情況下?

如果你想發明另一種聯合格式,我推薦使用Atom作爲基礎。恕我直言它有更清潔,更一致的設計,並具有有用的功能,如可靠的更新過去的項目,區分總結和全部內容等。

我想知道這是否已經完成。

Flickr有JSON output format。他們甚至有lolcode feed

+5

註冊只是爲了鏈接到lolcode,這讓我笑得最不專業。 – TRiG 2009-11-27 01:25:07

1

那麼,如果你正在開發一些JavaScript應用程序,你可能想獲得任何RSS源作爲JSON來克服跨域查詢問題。 Google提供的可靠解決方案可將任何RSS轉換爲JSON。對於jQuery愛好者來說,有一個universal RSS to JSON converter plugin

例子:

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

    // feeds is a javascript object with RSS content 

    }, 10); 
3

你說得對客戶端閱讀飼料就必須有自定義的支持無論您的JSON的細節當中。因此,您需要製作自定義Feed閱讀器來消費這些信息,否則某些人不得不提出JSON Feed標準,並且必須廣泛採用。

好吧,我想你的慾望終於得到滿足了,朋友!

看看JSON Feed。截至撰寫本文時,它只有大約一週的時間,但它已經在加緊推進,現在已經得到Feedly,Feedbin,News Explorer,NewsBlur的支持,並且更多的時間都在增加。

如果我在生成RSS的JSON版本時必須選擇一個標準,我肯定會選擇JSON Feed。

0

我知道這是一個相當古老的問題,現在也許不相關。

但是,我建議任何想要在JSON中發佈類RSS feed的人都應該使用正在迅速獲得採用的新格式; JSONFeed(https://jsonfeed.org)。

相關問題