我可以用JSON提供RSS吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以用JSON提供RSS吗?相关的知识,希望对你有一定的参考价值。
我正在写一个RSS提要(为了好玩),正在查看规范here。
RSS是XML的一种方言。所有RSS文件必须符合万维网联盟(W3C)网站上发布的XML 1.0规范。
显然这意味着如果我选择JSON选项,我就不会提供“纯”RSS。也就是说,如果我符合规范的其余部分,(定制的)读者是否可以解析它?
换句话说,如果我符合规范,但使用JSON而不是XML它是一个可用的RSS提要?
编辑我不确定我是否清楚自己。没有涉及XML。我想用JSON编写类似于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",
}
]
}
你是正确的,阅读饲料的客户必须有自定义的支持,无论你的JSON的细节是什么。因此,您需要制作自定义Feed阅读器来使用该信息,或者有人必须提出JSON Feed标准,并且必须广泛采用。
好吧,我觉得你的欲望终于得到了满足,朋友们!
看看JSON Feed。在撰写本文时,它只有一周左右的时间,但它现在已经开始增长,现在得到了Feedly,Feedbin,News Explorer,NewsBlur的支持,而且还在不断增加。
如果我必须选择在生成RSS的JSON版本时使用的标准,我肯定会选择JSON Feed。
不,RSS是一种基于XML的格式,而JSON是一种不同的语言而不是某种方言。 RSS阅读器不会理解JSON。
你的问题类似于问'我能用中文讲法语吗?'
我相信这已经完成了。
看看这个jQuery扩展:jFeed - RSS/ATOM feed parser
jQuery.getFeed(options);
选项:
- 网址:
- 数据:
- 成功:
例:
jQuery.getFeed({
url: 'rss.xml',
success: function(feed) {
alert(feed.title);
}
});
请注意,在这种情况下,'feed'将是一个javascript对象。如果你想使用JSON传递它,你可以使用javascript JSON utility。
例:
var myJSONText = JSON.stringify(feed);
在这种情况下,RSS规范(没有XML部分)是一个有用的规范吗?
如果您想要发明另一种联合格式,我建议使用Atom作为基础。恕我直言,它具有更清晰,更一致的设计,并具有有用的功能,如过去项目的可靠更新,区分摘要和完整内容等。
我想知道这是否已经完成。
Flickr有JSON output format。他们甚至有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);
有许多不同的方法可以将RSS序列化为JSON。所有这些都以相同的方式工作:元素和属性成为属性名称,值变为属性值等。例如,参见Piyush Shah's技术,这是一个.NET实现。
使用XSLT将任意XML转换为JSON非常简单,您可以在Google上找到它的六个例子。
只要一致地完成,可以处理旨在复制RSS规范的数据结构的对象模型的JavaScript应该能够处理JSON反序列化的对象模型。
你打算把这个JSON发送给谁?这才是真正的问题。
好吧,如果你正在开发一些javascript应用程序,你可能希望将任何RSS提要作为JSON来克服跨域查询问题。有一个可靠的谷歌提供的解决方案,可以将任何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中发布类似RSS的Feed的人都应该使用一种迅速获得采用的新格式; 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/。
以上是关于我可以用JSON提供RSS吗?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript:在AWS Lambda Node应用程序中将RSS转换为JSON
是否可以从 restservice java 消费 rss 提要?
带有来自w网站阅读器(rss、json)的新闻并显示用户(通知、存储)的应用程序