Pregunta

Estoy escribiendo un feed RSS (por diversión) y estaba mirando la especificación aquí .

  

RSS es un dialecto de XML. Todos los archivos RSS deben cumplir con la especificación XML 1.0, tal como se publica en el sitio web del World Wide Web Consortium (W3C).

Obviamente, esto significa que no estoy sirviendo RSS 'puro' si elijo la opción JSON. Dicho esto, si me conformo con el resto de la especificación, ¿es probable que los lectores (personalizados) puedan analizarlo?

Para decirlo de otra manera, si cumplo con las especificaciones, pero usar JSON en lugar de XML, ¿es una fuente RSS utilizable?

editar No estoy seguro de haberme aclarado. No hay XML involucrado. Quiero escribir algo similar a RSS (que es XML) usando JSON en su lugar. Obviamente, los lectores de una fuente de este tipo deberían escribirse para comprender el formato JSON. Me preguntaba si esto ya se había hecho. ¿Hay servicios que sirven un feed de esta manera? ¿Existen programas que puedan agregar / comprender este formato? ¿Es la especificación RSS (sin la parte XML) una especificación útil para cumplir en este 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",
    }
]
} 
¿Fue útil?

Solución

Creo que esto ya se ha hecho.

Eche un vistazo a esta extensión de jQuery: jFeed - analizador de feeds RSS / ATOM

jQuery.getFeed(options);

Opciones:

  • url:
  • datos:
  • éxito:

Ejemplo :

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

Tenga en cuenta que en este caso, 'feed' sería un objeto javascript. Si desea pasar esto usando JSON, puede usar la utilidad JSON de javascript .

Ejemplo:

var myJSONText = JSON.stringify(feed);

Otros consejos

No, RSS es un formato basado en XML, y JSON es un idioma diferente en lugar de algún tipo de dialecto. Los lectores RSS no entenderán JSON.

Su pregunta es similar a la pregunta "¿Puedo hablar francés en chino?"

  

¿Es la especificación de RSS (sin la parte XML) una especificación útil para cumplir en este caso?

Si quieres inventar otro formato de sindicación, recomiendo usar Atom como base. En mi humilde opinión tiene un diseño mucho más limpio y consistente, y tiene características útiles como actualizaciones confiables de elementos anteriores, hace distinciones entre resúmenes y contenido completo, etc.

  

Me preguntaba si esto ya se había hecho.

Flickr tiene formato de salida JSON . Incluso tienen feed de código de licencia .

Json.NET - http://james.newtonking.com/projects/json -net.aspx : tiene soporte para convertir cualquier documento XML a 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);

Tiene razón en que el cliente leyendo el feed tendría que tener soporte personalizado para cualquier información de su JSON. Por lo tanto, necesitarías crear un lector de feeds personalizado para consumir esa información, o alguien tendría que proponer un estándar de JSON para la alimentación, y tendría que ser adoptado ampliamente.

Bueno, creo que tus deseos finalmente se han cumplido, amigo!

Echa un vistazo a Feed de JSON . Al momento de escribir este artículo, solo tiene una semana, pero ya está cobrando fuerza, ya que ha sido respaldado por Feedly , Feedbin , Explorador de noticias , NewsBlur , y se agregan más todo el tiempo.

Si tuviera que elegir un estándar para usar al generar una versión JSON de RSS, elegiría JSON Feed con seguridad.

Hay varias formas diferentes de serializar RSS en JSON. Todos ellos funcionan prácticamente de la misma manera: los elementos y atributos se convierten en nombres de propiedad, los valores se convierten en valores de propiedad, etc. Vea técnica de Piyush Shah , por ejemplo, que es una implementación de .NET.

Transformar XML arbitrario a JSON usando XSLT es lo suficientemente simple como para poder encontrar media docena de ejemplos en Google.

Mientras esto se haga de manera consistente, JavaScript que puede procesar un modelo de objeto diseñado para replicar la estructura de datos de la especificación de RSS debe poder manejar el modelo de objeto en el que JSON se deserializa.

¿A quién planeas enviar este JSON? Esa es la verdadera pregunta.

Bueno, si está desarrollando alguna aplicación javascript, es posible que desee obtener cualquier fuente RSS como JSON para superar el problema de consulta entre dominios. Existe una solución confiable proporcionada por Google que convierte cualquier RSS a JSON. Para los amantes de jQuery hay un universal RSS al complemento convertidor JSON .

Ejemplo:

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

    // feeds is a javascript object with RSS content

  }, 10);

Sé que esta es una pregunta bastante antigua, y tal vez sea irrelevante ahora.

Sin embargo. Yo sugeriría que cualquier persona que quiera publicar un feed de tipo RSS en JSON debería usar un nuevo formato que esté ganando rápidamente adopción; JSONFeed ( https://jsonfeed.org ).

  

¿Existen programas que puedan agregar / comprender este formato?

Puede usar XSLT 3.0 para transformar XML a JSON y volver a XML otra vez. Más información sobre cómo realizar las transformaciones a JSON aquí:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top