我正在编写 RSS 提要(为了好玩)并且正在查看规范 这里.

RSS 是 XML 的一种方言。所有 RSS 文件必须符合万维网联盟 (W3C) 网站上发布的 XML 1.0 规范。

显然,这意味着如果我选择 JSON 选项,我就不会提供“纯”RSS。也就是说,如果我符合规范的其余部分,(定制的)读者是否能够解析它?

换句话说,如果我符合规范,但使用 JSON 而不是 XML,它是一个可用的 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);

选项:

  • 网址:
  • 数据:
  • 成功:

例子:

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

您是正确的,客户阅读 Feed必须具有自定义支持,无论您的JSON具体是什么。因此,您需要制作自定义Feed阅读器来使用该信息,或者有人必须提出JSON Feed标准,并且必须广泛采用。

嗯,我认为你的欲望终于得到了满足,朋友!

查看 JSON Feed 。在撰写本文时,它只有一周左右的时间,但它现在已经开始增长,现在已经得到了 Feedly的支持 Feedbin News Explorer NewsBlur ,还有更多内容一直在添加。

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

将RSS序列化为JSON有许多不同的方法。所有这些都以相同的方式工作:元素和属性成为属性名称,值成为属性值等。请参阅 Piyush Shah的技术,例如,它是一个.NET实现。

使用XSLT将任意XML转换为JSON非常简单,您可以在Google上找到它的六个例子。

只要一致地完成,可以处理旨在复制RSS规范的数据结构的对象模型的JavaScript应该能够处理JSON反序列化的对象模型。

您打算将此JSON发送给谁?这是真正的问题。

好吧,如果你正在开发一些javascript应用程序,你可能希望将任何RSS提要作为JSON来克服跨域查询问题。有一个可靠的谷歌提供的解决方案,可以将任何RSS转换为JSON。对于jQuery爱好者来说,有一个通用RSS到JSON转换器插件

示例:

$.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/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top