Question

J'écris un flux RSS (pour le plaisir) et je regardais les spécifications ici .

  

RSS est un dialecte de XML. Tous les fichiers RSS doivent être conformes à la spécification XML 1.0 publiée sur le site Web du World Wide Web Consortium (W3C).

Évidemment, cela signifie que je ne sers pas de flux RSS «pur» si je choisis l’option JSON. Cela dit, si je me conforme au reste de la spécification, les lecteurs (personnalisés) pourront-ils l’analyser?

En d'autres termes, si je suis conforme à la spécification, mais que l'utilisation de JSON au lieu de XML est-elle un flux RSS utilisable?

modifier Je ne suis pas sûr de m'être bien fait comprendre. Il n'y a pas de XML impliqué. Je veux écrire quelque chose qui s'apparente à RSS (XML) en utilisant JSON. Il est évident que les lecteurs d’un tel flux devront être écrits pour comprendre le format JSON. Je me demandais si cela avait déjà été fait. Y at-il des services qui servent un flux de cette façon? Existe-t-il des programmes pouvant agréger / comprendre ce format? La spécification RSS (sans la partie XML) est-elle une spécification utile à respecter dans ce cas?

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",
    }
]
} 
Était-ce utile?

La solution

Je pense que cela a déjà été fait.

Jetez un coup d'œil à cette extension jQuery: jFeed - Analyseur de flux RSS / ATOM

jQuery.getFeed(options);

Options:

  • url:
  • données:
  • succès:

Exemple:

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

Notez que dans ce cas, 'feed' serait un objet javascript. Si vous souhaitez utiliser cette méthode à l'aide de JSON, vous pouvez simplement utiliser l' utilitaire JSON javascript .

Exemple:

var myJSONText = JSON.stringify(feed);

Autres conseils

Non, RSS est un format basé sur XML et JSON est une langue différente plutôt qu'un dialecte. Les lecteurs RSS ne comprendront pas JSON.

Votre question s'apparente à demander "Puis-je parler français en chinois?"

  

La spécification RSS (sans la partie XML) est-elle une spécification utile à respecter dans ce cas?

Si vous souhaitez inventer un autre format de syndication, je vous recommande d’utiliser Atom comme base. À mon humble avis, il a une conception beaucoup plus propre et cohérente, ainsi que des fonctionnalités utiles telles que des mises à jour fiables des éléments passés, fait la distinction entre les résumés et le contenu intégral, etc.

  

Je me demandais si cela avait déjà été fait.

Flickr a format de sortie JSON . Ils ont même un lolcode feed .

Json.NET - http://james.newtonking.com/projects/json -net.aspx : prend en charge la conversion de tout document XML en 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);

Vous avez raison, le client en train de lire le flux doit disposer d'un support personnalisé pour tous les détails de votre code JSON. Vous devez donc créer un lecteur de flux personnalisé pour utiliser ces informations, ou quelqu'un doit proposer un standard de flux JSON, qui devra être adopté à grande échelle.

Eh bien, je pense que vos désirs ont enfin été satisfaits, mon ami!

Consultez le flux JSON . Au moment de la rédaction de cet article, il a seulement environ une semaine, mais il commence déjà à prendre forme, après avoir été soutenu par Feedly , Feedbin , Explorateur d'informations , NewsBlur , et d’autres étant ajoutés à tout moment.

Si je devais choisir un standard à utiliser lors de la génération d'une version JSON de RSS, je choisirais le flux JSON à coup sûr.

Il existe de nombreuses façons de sérialiser RSS dans JSON. Tous fonctionnent à peu près de la même façon: les éléments et les attributs deviennent des noms de propriété, les valeurs deviennent des valeurs de propriété, etc. Voir La technique de Piyush Shah , par exemple, qui est une implémentation .NET.

Transformer du XML arbitraire en JSON à l'aide de XSLT est assez simple pour que vous puissiez en trouver une demi-douzaine d'exemples sur Google.

Tant que cela est effectué de manière cohérente, JavaScript capable de traiter un modèle objet conçu pour répliquer la structure de données de la spécification RSS doit être capable de gérer le modèle objet dans lequel le fichier JSON se désérialise.

À qui prévoyez-vous envoyer ce fichier JSON? C'est la vraie question.

Eh bien, si vous développez une application javascript, vous souhaiterez peut-être utiliser des flux RSS au format JSON pour résoudre le problème des requêtes inter-domaines. Il existe une solution fiable fournie par Google qui convertit tous les flux RSS en JSON. Pour les amateurs de jQuery, il existe un universal RSS au plug-in de conversion JSON .

Exemple:

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

    // feeds is a javascript object with RSS content

  }, 10);

Je sais que c'est une question assez ancienne, et peut-être non pertinente maintenant.

Cependant. Je suggérerais à toute personne cherchant à publier un flux de type RSS dans JSON d'utiliser un nouveau format rapidement adopté. JSONFeed ( https://jsonfeed.org ).

  

Certains programmes peuvent-ils agréger / comprendre ce format?

Vous pouvez utiliser XSLT 3.0 pour transformer du XML en JSON puis de nouveau en XML. encore. Plus d'informations sur la manière d'effectuer les transformations en JSON ici:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top