Domanda

Sto scrivendo un feed RSS (per divertimento) e stavo guardando le specifiche qui .

  

RSS è un dialetto di XML. Tutti i file RSS devono essere conformi alla specifica XML 1.0, pubblicata sul sito Web del World Wide Web Consortium (W3C).

Ovviamente questo significa che non sto offrendo RSS 'puro' se scelgo l'opzione JSON. Detto questo, se mi conformo al resto delle specifiche, è probabile che i lettori (personalizzati) saranno in grado di analizzarle?

In altre parole, se mi conformo alle specifiche, ma usando JSON invece di XML è un feed RSS utilizzabile?

modifica Non sono sicuro di essermi chiarito. Nessun XML coinvolto. Voglio scrivere qualcosa di simile a RSS (che è XML) usando JSON. Ovviamente i lettori di un tale feed dovrebbero essere scritti per comprendere il formato JSON. Mi chiedevo se fosse già stato fatto. Ci sono servizi che servono un feed in questo modo? Esistono programmi in grado di aggregare / comprendere questo formato. La specifica RSS (senza la parte XML) è una specifica utile a cui conformarsi in questo caso?

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",
    }
]
} 
È stato utile?

Soluzione

Credo che sia già stato fatto.

Dai un'occhiata a questa estensione jQuery: jFeed - Analizzatore di feed RSS / ATOM

jQuery.getFeed(options);

Opzioni:

  • url:
  • Dati:
  • successo

Esempio:

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

Nota che in questo caso 'feed' sarebbe un oggetto javascript. Se desideri passare questo tramite JSON, puoi semplicemente utilizzare l'utilità JSON JavaScript ja .

Esempio:

var myJSONText = JSON.stringify(feed);

Altri suggerimenti

No, RSS è un formato basato su XML e JSON è una lingua diversa piuttosto che un qualche tipo di dialetto. I lettori RSS non capiranno JSON.

La tua domanda è simile alla domanda "Posso parlare francese in cinese?"

  

La specifica RSS (senza la parte XML) è una specifica utile a cui conformarsi in questo caso?

Se vuoi inventare un altro formato di sindacazione, ti consiglio di usare Atom come base. IMHO ha un design molto più pulito e coerente e ha funzioni utili come aggiornamenti affidabili di elementi passati, fa una distinzione tra riepiloghi e contenuto completo, ecc.

  

Mi chiedevo se fosse già stato fatto.

Flickr ha formato di output JSON . Hanno anche feed lolcode .

Json.NET - http://james.newtonking.com/projects/json -net.aspx - ha il supporto per convertire qualsiasi documento XML in 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);

Hai ragione sul fatto che il client leggendo il feed dovrebbe avere un supporto personalizzato per qualunque sia il dettaglio del tuo JSON. Quindi dovresti o creare un lettore di feed personalizzato per consumare tali informazioni o qualcuno dovrebbe proporre uno standard di feed JSON e dovrebbe essere ampiamente adottato.

Beh, penso che i tuoi desideri siano finalmente stati soddisfatti, amico!

Dai un'occhiata a Feed JSON . Al momento della stesura di questo articolo è solo circa una settimana, ma sta già raccogliendo vapore, essendo stato supportato ora da Feedly , Feedbin , Notizie Explorer , NewsBlur , e altro ancora da aggiungere.

Se dovessi scegliere uno standard da utilizzare durante la generazione di una versione JSON di RSS, sceglierei sicuramente Feed JSON.

Esistono diversi modi per serializzare RSS in JSON. Funzionano tutti allo stesso modo: gli elementi e gli attributi diventano nomi di proprietà, i valori diventano valori di proprietà, ecc. Vedi la tecnica di Piyush Shah , ad esempio, che è un'implementazione di .NET.

Trasformare XML arbitrario in JSON usando XSLT è abbastanza semplice da poter trovare una mezza dozzina di esempi su Google.

Fintanto che ciò viene fatto in modo coerente, JavaScript in grado di elaborare un modello a oggetti progettato per replicare la struttura dei dati della specifica RSS dovrebbe essere in grado di gestire il modello a oggetti in cui JSON si diserializza.

A chi hai intenzione di inviare questo JSON? Questa è la vera domanda.

Bene, se stai sviluppando qualche app javascript potresti voler ottenere qualsiasi feed RSS come JSON per superare il problema delle query tra domini. Esiste una soluzione affidabile fornita da Google che converte qualsiasi RSS in JSON. Per gli amanti di jQuery esiste un RSS universale al plug-in convertitore JSON .

Esempio:

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

    // feeds is a javascript object with RSS content

  }, 10);

So che questa è una domanda abbastanza vecchia, e forse irrilevante ora.

Tuttavia. Suggerirei a chiunque voglia pubblicare un feed di tipo RSS in JSON di utilizzare un nuovo formato che sta rapidamente guadagnando l'adozione; JSONFeed ( https://jsonfeed.org ).

  

Esistono programmi che possono aggregare / comprendere questo formato.

Puoi utilizzare XSLT 3.0 per trasformare XML in JSON e tornare in XML ancora. Maggiori informazioni su come eseguire le trasformazioni in JSON qui:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top