Pergunta

Eu estou escrevendo um feed RSS (por diversão) e estava olhando para a especificação aqui .

RSS é um dialeto do XML. Todos os arquivos RSS deve estar em conformidade com a especificação XML 1.0, conforme publicado na World Wide Web Consortium website (W3C).

Obviamente, isso significa que eu não estou servindo RSS 'puro' se eu escolher a opção JSON. Dito isto, se eu estar de acordo com o resto do spec, é provável que os leitores (personalizados) será capaz de analisá-lo?

Para colocar de outra forma, se eu estar de acordo com a especificação, mas usando JSON em vez de XML é um feed RSS utilizável?

editar Não tenho a certeza que eu fiz claro. Não há XML envolvidos. Eu quero escrever algo semelhante ao RSS (que é XML), utilizando JSON vez. Obviamente, os leitores de tais alimentos para uma precisaria ser escrita para entender o formato JSON. Fiquei me perguntando se isso tivesse sido feito já. Existem serviços que servem uma alimentar desta maneira? Existem programas que podem agregar / entendem esse formato. É a especificação RSS (sans a parte XML) uma especificação útil para se conformar com neste 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",
    }
]
} 
Foi útil?

Solução

Eu acredito que isso já foi feito.

Dê uma olhada esta extensão jQuery: jFeed - RSS / ATOM feed parser

jQuery.getFeed(options);

Opções:

  • url:
  • dados:
  • sucesso:

Exemplo:

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

Note que, neste caso, 'alimentar' seria um objeto javascript. Se você queria passar isso usando JSON, você pode simplesmente usar o javascript JSON utilitário .

Exemplo:

var myJSONText = JSON.stringify(feed);

Outras dicas

Não, RSS é um formato baseado em XML e JSON é um idioma diferente, em vez de algum tipo de dialeto. Os leitores de RSS não vai entender JSON.

A sua pergunta é como perguntar 'Posso falar francês em chinês?'

É a especificação RSS (sans a parte XML) uma especificação útil para se conformar com neste caso?

Se você quiser inventar mais um formato de distribuição, eu recomendo usar Atom como base. IMHO ele tem muito mais limpo, design mais consistente, e tem características úteis como atualizações confiáveis ??de itens do passado, faz distinção entre resumos e conteúdo completo, etc.

Eu queria saber se isso já havia sido feito.

Flickr tem JSON formato de saída . Eles ainda têm LOLCODE alimentação .

Json.NET - http://james.newtonking.com/projects/json -net.aspx -. tem suporte para converter qualquer documento XML para 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);

Você está certo de que o cliente leitura do feed teria que ter suporte personalizado para o que quer que as indicações do seu JSON eram. Então você quer necessidade de fazer um leitor de feed personalizado para consumir essa informação, ou alguém teria que propor um JSON alimentar padrão, e ele teria de ser amplamente adotado.

Bem, acho que seus desejos foram finalmente se encontraram, amigo!

Dê uma olhada JSON alimentação . Como desta escrita é apenas cerca de uma semana de idade, mas já está ganhando força, tendo sido apoiado agora por Feedly , Feedbin , Notícias Explorador , NewsBlur , e mais sendo adicionados o tempo todo.

Se eu tivesse que escolher um padrão para uso ao gerar uma versão JSON de RSS, eu escolheria JSON alimentação com certeza.

Há um monte de maneiras diferentes para serializar RSS em JSON. Todos eles trabalham praticamente da mesma maneira: os elementos e atributos nomes de propriedades se tornam, os valores tornam-se valores de propriedade, etc. Consulte técnica de Piyush Shah, por exemplo, que é uma implementação do .NET.

Transformar XML arbitrário JSON usando XSLT é bastante simples que você pode encontrar meia dúzia de exemplos disso no Google.

Enquanto isso é feito de forma consistente, JavaScript que pode processar um modelo de objeto projetado para replicar a estrutura de dados da especificação RSS deve ser capaz de lidar com o modelo de objeto que o JSON desserializa em.

Quem você está planejando enviar esta JSON para? Essa é a verdadeira questão.

Bem, se você estiver desenvolvendo algum aplicativo javascript você pode querer obter quaisquer feeds RSS como JSON para superar questão consulta cross-domain. Há uma solução Google forneceu confiável, que converte sobre qualquer RSS para JSON. Para jQuery amante de há um RSS universal para JSON conversor de plug-in .

Exemplo:

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

    // feeds is a javascript object with RSS content

  }, 10);

Eu sei que esta é uma questão bastante antiga, e talvez irrelevante agora.

No entanto. Gostaria de sugerir quem quer publicar um feed RSS, como em JSON deve usar um novo formato que está ganhando rapidamente adopção; JSONFeed ( https://jsonfeed.org ).

Existem programas que podem agregar / entendem esse formato.

Você pode usar XSLT 3.0 para transformar XML para JSON e de volta para XML novamente. Mais informações sobre como realizar as transformações para JSON aqui:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top