我可以在JSON中使用RSS吗?

问题描述:

我正在写一个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

我相信这已经完成了。

看看这个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

没有,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

有很多不同的方式将RSS序列化为JSON。它们的工作方式几乎相同:元素和属性成为属性名称,值成为属性值等。请参阅Piyush Shah's技术,例如,这是一种.NET实现。

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

只要这是一贯做,JavaScript代码能够处理旨在复制RSS规范的数据结构应该能够处理的JSON反序列化到对象模型的对象模型。

你打算把这个JSON发送给谁?这是真正的问题。

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

是的RSS规范(SAN的XML部分)一个有用的规格,以符合在这种情况下?

如果你想发明另一种联合格式,我推荐使用Atom作为基础。恕我直言它有更清洁,更一致的设计,并具有有用的功能,如可靠的更新过去的项目,区分总结和全部内容等。

我想知道这是否已经完成。

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

+5

注册只是为了链接到lolcode,这让我笑得最不专业。 – TRiG 2009-11-27 01:25:07

那么,如果你正在开发一些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); 

你说得对客户端阅读饲料就必须有自定义的支持无论您的JSON的细节当中。因此,您需要制作自定义Feed阅读器来消费这些信息,否则某些人不得不提出JSON Feed标准,并且必须广泛采用。

好吧,我想你的欲望终于得到满足了,朋友!

看看JSON Feed。截至撰写本文时,它只有大约一周的时间,但它已经在加紧推进,现在已经得到Feedly,Feedbin,News Explorer,NewsBlur的支持,并且更多的时间都在增加。

如果我在生成RSS的JSON版本时必须选择一个标准,我肯定会选择JSON Feed。

我知道这是一个相当古老的问题,现在也许不相关。

但是,我建议任何想要在JSON中发布类RSS feed的人都应该使用正在迅速获得采用的新格式; JSONFeed(https://jsonfeed.org)。