Могу ли я подавать RSS в формате JSON?

xml json rss

23480 просмотра

9 ответа

Я пишу RSS-канал (для удовольствия) и смотрел спецификации здесь .

RSS - это диалект XML. Все RSS-файлы должны соответствовать спецификации XML 1.0, опубликованной на веб-сайте Консорциума World Wide Web (W3C).

Очевидно, это означает, что я не обслуживаю «чистый» RSS, если я выбрал опцию JSON. Тем не менее, если я буду соответствовать остальной части спецификации, есть ли вероятность, что (настроенные) читатели смогут ее проанализировать?

Другими словами, если я соответствую спецификации, но использую JSON вместо XML, это пригодный для использования канал RSS?

редактировать Я не уверен, что я дал понять, Там нет XML, участвующих. Я хочу написать что-то похожее на RSS (то есть XML), используя вместо этого JSON. Очевидно, что читатели такого канала должны быть написаны, чтобы понять формат JSON. Мне было интересно, если это уже было сделано. Существуют ли службы, которые обслуживают канал таким образом? Существуют ли программы, которые могут объединять / понимать этот формат. Является ли спецификация RSS (без XML-части) полезной для соответствия спецификации в этом случае?

гк

{
"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",
    }
]
} 
Автор: Hyposaurus Источник Размещён: 17.05.2019 02:58

Ответы (9)


14 плюса

Решение

Я считаю, что это уже сделано.

Взгляните на это расширение jQuery: jFeed - синтаксический анализатор RSS / ATOM

jQuery.getFeed(options);

Опции:

  • URL:
  • данные:
  • успех:

Пример:

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

Обратите внимание, что в этом случае «feed» будет объектом javascript. Если вы хотите передать это с помощью JSON, вы можете просто использовать утилиту JSON Javascript .

Пример:

var myJSONText = JSON.stringify(feed);
Автор: Dan Esparza Размещён: 30.10.2008 09:00

21 плюса

Нет, RSS - это формат на основе XML, а JSON - это другой язык, а не какой-то диалект. Читатели RSS не поймут JSON.

Ваш вопрос похож на вопрос «Могу ли я говорить по-французски по-китайски?»

Автор: Gareth Размещён: 29.10.2008 12:24

9 плюса

Является ли спецификация RSS (без XML-части) полезной для соответствия спецификации в этом случае?

Если вы хотите изобрести еще один формат синдикации, я рекомендую использовать Atom в качестве основы. ИМХО, он намного чище, более последовательный дизайн и имеет полезные функции, такие как надежные обновления прошлых элементов, делает различие между резюме и полным содержанием и т. Д.

Мне было интересно, если это уже было сделано.

Flickr имеет формат вывода JSON . У них даже есть подача lolcode .

Автор: Kornel Размещён: 26.11.2008 11:16

3 плюса

Json.NET - http://james.newtonking.com/projects/json-net.aspx - имеет поддержку для преобразования любого XML-документа в 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);
Автор: James Newton-King Размещён: 30.10.2008 09:05

3 плюса

Вы правы, что клиент, читающий фид, должен иметь индивидуальную поддержку для всех деталей вашего JSON. Таким образом, вам нужно либо создать специальную программу чтения каналов, чтобы использовать эту информацию, либо кто-то должен будет предложить стандарт каналов JSON, и он должен быть широко принят.

Ну, я думаю, что твои желания наконец были выполнены, друг!

Посмотрите на JSON Feed . На момент написания этой статьи всего лишь неделя, но она уже набирает обороты, поскольку теперь ее поддерживают Feedly , Feedbin , News Explorer , NewsBlur и многие другие.

Если бы мне пришлось выбирать стандарт для использования при создании JSON-версии RSS, я бы точно выбрал JSON Feed.

Автор: jlbang Размещён: 25.05.2017 04:38

2 плюса

Существует множество способов сериализации RSS в JSON. Все они работают примерно одинаково: элементы и атрибуты становятся именами свойств, значения становятся значениями свойств и т. Д. См . , Например, метод Пиюша Шаха , который является реализацией .NET.

Преобразование произвольного XML в JSON с использованием XSLT достаточно просто, и вы можете найти полдюжины его примеров в Google.

Пока это выполняется последовательно, JavaScript, который может обрабатывать объектную модель, предназначенную для репликации структуры данных спецификации RSS, должен иметь возможность обрабатывать объектную модель, в которую десериализуется JSON.

Кому вы планируете отправить этот JSON? Это настоящий вопрос.

Автор: Robert Rossney Размещён: 29.10.2008 07:39

1 плюс

Что ж, если вы разрабатываете какое-то приложение javascript, вам может потребоваться получить любые RSS-каналы в формате JSON, чтобы преодолеть проблему междоменных запросов. Существует надежное решение от Google, которое конвертирует любые RSS в JSON. Для любителей jQuery есть универсальный плагин конвертера RSS в JSON .

Пример:

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

    // feeds is a javascript object with RSS content

  }, 10);
Автор: Uzbekjon Размещён: 07.11.2009 12:55

0 плюса

Я знаю, что это довольно старый вопрос, и, возможно, не имеет значения сейчас.

Тем не мение. Я бы посоветовал всем, кто хочет опубликовать RSS-канал в JSON, следует использовать новый формат, который быстро завоевывает популярность; JSONFeed ( https://jsonfeed.org ).

Автор: Vihung Размещён: 28.06.2017 04:48

0 плюса

Существуют ли программы, которые могут объединять / понимать этот формат.

Вы можете использовать XSLT 3.0 для преобразования XML в JSON и обратно в XML. Более подробную информацию о том, как выполнить преобразования в JSON здесь:

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

Автор: Josh Habdas Размещён: 26.02.2019 09:32
32x32