Frage

Ich schreibe einen RSS-Feed (zum Spaß) und wurde bei der Spezifikation hier suchen .

  

RSS ist ein XML-Dialekt. Alle RSS-Dateien in der XML 1.0-Spezifikation entsprechen müssen, wie im World Wide Web Consortium (W3C) Website veröffentlicht.

Natürlich bedeutet dies, dass ich nicht ‚rein‘ RSS diene, wenn ich die JSON-Option wählen. Das heißt, wenn ich auf den Rest der Spezifikation entsprechen, ist es wahrscheinlich, dass (angepasst) Leser in der Lage sein werden, sie zu analysieren?

Um es anders auszudrücken, wenn ich die spec entsprechen, aber anstelle von XML-JSON verwendet, ist es ein brauchbarer RSS-Feed?

Bearbeiten Ich bin nicht sicher, ob ich mich klar gemacht. Es gibt keine XML beteiligt. Ich möchte so etwas wie RSS schreiben (die XML ist) mit JSON statt. Offensichtlich sind die Leser eines solchen Feed müssten geschrieben werden, um die JSON-Format zu verstehen. Ich frage mich, ob dies bereits getan worden war. Gibt es Leistungen, die ein Futter auf diese Weise dienen? Gibt es Programme, die / verstehen dieses Format aggregieren kann. Ist die RSS-Spezifikation (ohne den XML-Teil) eine nützliche spec in diesem Fall entsprechen?

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",
    }
]
} 
War es hilfreich?

Lösung

Ich glaube, dies bereits geschehen ist.

Werfen Sie einen Blick auf diese jQuery-Erweiterung: jFeed - RSS / ATOM-Feed Parser

jQuery.getFeed(options);

Optionen:

  • url:
  • Daten:
  • Erfolg:

Beispiel:

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

Beachten Sie, dass in diesem Fall ‚Futtermittel‘ ein Javascript-Objekt sein würde. Wenn Sie diese mit JSON übergeben wollen, können Sie einfach die Verwendung Javascript JSON-Dienstprogramm .

Beispiel:

var myJSONText = JSON.stringify(feed);

Andere Tipps

Nein, RSS ist ein XML-basiertes Format, und JSON ist eine andere Sprache eher als eine Art Dialekt. RSS-Reader werden nicht JSON verstehen.

Ihre Frage ist ähnlich zu fragen ‚Kann ich Französisch in Chinesisch sprechen?‘

  

Ist die RSS-Spezifikation (ohne den XML-Teil) eine nützliche spec in diesem Fall entsprechen?

Wenn Sie noch ein anderes Syndication-Format erfinden wollen, empfehle ich Atom als Basis verwenden. IMHO hat es viel sauberes, konsistentes Design und verfügt über nützliche Features wie zuverlässiges Updates vergangener Elemente, macht Unterscheidung zwischen Zusammenfassungen und voller Inhalt, etc.

  

Ich frage mich, ob dies bereits getan worden war.

Flickr hat JSON Ausgabeformat . Sie haben sogar LOLCODE Feed .

Json.NET - http://james.newtonking.com/projects/json -net.aspx -. hat die Unterstützung jedes XML-Dokument zu JSON konvertieren

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

Sie haben Recht, dass der Client Lesen das Futter haben müssen, um Unterstützung Gewohnheit würde, was auch immer die Einzelheiten Ihrer JSON waren. Also würden Sie müssen entweder einen benutzerdefinierten Feed-Reader machen, um diese Informationen zu konsumieren, oder jemand würde einen JSON-Feed Standard vorschlagen müssen, und es müssten weithin angenommen werden.

Nun, ich denke, Ihre Wünsche erfüllt schließlich worden, Freund!

Hier finden Sie aktuelle JSON-Feed . Zum Zeitpunkt des Schreibens ist es nur etwa eine Woche alt, aber es schon ist an Fahrt, jetzt unterstützt worden von Feedly , Feedbin , News Explorer , NewsBlur und mehr hinzugefügt die ganze Zeit.

Wenn ich einen Standard auswählen müsste zu verwenden, wenn eine JSON-Version von RSS zu erzeugen, würde ich JSON-Feed sicher auswählen.

Es gibt eine Reihe von verschiedenen Möglichkeiten, RSS in JSON serialisiert werden. Alle von ihnen ziemlich die gleiche Art und Weise arbeiten: die Elemente und Attribute Eigenschaftsnamen werden, werden die Werte Eigenschaftswerte usw. Siehe Piyush Shah Technik, zum Beispiel, die eine .NET-Implementierung ist.

Die Umwandlung beliebige XML zu JSON XSLT einfach genug, dass man einem halben Dutzend Beispiele davon auf Google finden kann.

Solange dies konsequent durchgeführt wird, JavaScript, das ein Objektmodell der Datenstruktur der RSS-Spezifikation entwickelte verarbeiten kann replizieren sollte das Objektmodell zu handhaben kann, die die JSON deserialisiert in.

Wer planen Sie diese JSON zu schicken? Das ist die eigentliche Frage.

Nun, wenn Sie einige Javascript App entwickeln mögen Sie vielleicht jeden RSS-Feeds bekommen als JSON Cross-Domain-Abfrage Problem zu überwinden. Es gibt eine zuverlässige Google bereitgestellte Lösung, die über jede RSS zu JSON konvertiert. Für jQuery Liebhabers ist ein universal RSS JSON-Konverter Plugin .

Beispiel:

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

    // feeds is a javascript object with RSS content

  }, 10);

Ich weiß, dass dies eine ziemlich alte Frage ist, und vielleicht irrelevant jetzt.

Allerdings. Ich würde vorschlagen, alle, die einen RSS-Feed wie in JSON veröffentlichen sollte ein neues Format verwenden, das schnell Annahme gewinnt; JSONFeed ( https://jsonfeed.org ).

  

Gibt es Programme, die dieses Format aggregieren kann / verstehen.

Sie können mit XSLT 3.0 XML zu JSON umwandeln und zurück zu XML nochmal. Weitere Informationen darüber, wie die Transformationen zu erreichen, hier JSON:

https: //www.xml.com/articles/2017/02/14/why-you-should-be-using-xslt-30/ .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top