Как определить, является ли RSS-канал XML или JSON? - PullRequest
0 голосов
/ 03 июня 2010

Есть ли способ узнать, является ли фид XML, JSON или оба?

Ответы [ 2 ]

2 голосов
/ 03 июня 2010

Мне не совсем понятно, что вы подразумеваете под «подачей», но если для типа mime файла установлено значение application/json, то это JSON. XML имеет два стандартных типа MIME (application/xml и text/xml).

Если у вас нет доступа к типам MIME (или они неоднозначны), вы можете проверить наличие <?xml в начале правильного XML-файла. И если этого нет, то вы, вероятно, можете сделать довольно хорошее предположение, что это XML, если он начинается с <, и JSON, если он начинается с {. Но нет гарантии, что они будут правильно сформированы.

2 голосов
/ 03 июня 2010

Лучший и надежный способ - просто запустить его через синтаксический анализатор XML и JSON и посмотреть, какой из них работает, не генерируя синтаксических ошибок. Например, в PHP попробуйте json_encode($feed_string) и $xml = new SimpleXMLElement($feed_string);

Кроме того, вы можете просто выполнить некоторую простую проверку строки. Все правильно сформированные XML-документы начинаются с <?xml, тогда как JSON обычно начинается с {, поскольку данные фида являются объектом Javascript.

Примеры, которые Google предоставляет в качестве двух форматов каналов, могут быть полезны:

http://code.google.com/apis/gdata/docs/json.html

...