Какой формат я должен выбрать для запроса API в C # - JSON или XML - PullRequest
4 голосов
/ 26 января 2011

Я запрашиваю данные из REST API в C #.API предлагает мне одни и те же данные в формате JSON и XML.

К чему мне обратиться?Это ясно , какой бы я выбрал в JavaScript. Но что в C #? Существуют ли какие-либо преимущества в производительности, помогающие мне выбрать одно из другого в C #, или по каким-либо причинам?

Заранее спасибо!

Ответы [ 6 ]

5 голосов
/ 26 января 2011

Лично я бы попробовал оба, измерить производительность, сравнить и выбрать тот, который быстрее.С точки зрения логики вашего приложения это не должно иметь большого значения, поскольку оно будет манипулировать объектами (не XML и не JSON).Преобразование XML / JSON в объекты следует абстрагировать в репозиторий, который можно в мгновение ока заменить другой реализацией, если вы чувствуете, что тот, который вы выбрали изначально, медленный или не работаетвы.

1 голос
/ 26 января 2011

Вы должны измерить оба, чтобы определить характеристики производительности вашей ситуации.

В своем собственном использовании я начал с JSON, поскольку он имел очевидные преимущества кроссплатформенности, но был вынужден использовать XML после получения основных замедлений для больших наборов данных в Silverlight / C # (об этом сообщалось как ошибка в одном из моих модулей, когда все зависало на несколько секунд - замедление было связано с десериализацией JSON большого набора данных, который он использовал). Переключение на XML привело к большей загрузке (сжатие gzip, которое было запланировано, было добавлено в этот момент, чтобы противостоять этому), но более чем на порядок увеличение производительности, даже с добавленной декомпрессией gzip.

1 голос
/ 26 января 2011

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

1 голос
/ 26 января 2011

Лично я считаю, что инфраструктура сериализации XML в C # более зрелая и имеет более богатый набор функций, чем поддержка JSON (для которой на самом деле существуют две отдельные платформы .NET).Но JSON гораздо более лаконичен, поэтому он зависит от характеристик вашей нагрузки - будет ли она загружена и т.д.

1 голос
/ 26 января 2011

C # может десериализовать объекты из JSON или XML.

Как правило, XML будет более многословным, чем JSON.

Если вы возвращаете небольшой набор данных, это не будет иметь большого значения, но если у вас более большой набор данных, то менее многословный JSON может быстрее передаваться по проводам.

Я бы взял образцы каждого и сравнил.

0 голосов
/ 26 января 2011

Как в JSON, так и в XML есть множество библиотек на любом языке, поэтому простота синтаксического анализа / генерации здесь не очень актуальна.

Также, хотя JSON кажется меньше (особенно если вы не используетеАтрибуты XML, но подход, основанный только на элементах), когда оба gzip-файла почти одинаковы

Если вы действительно в скорости, я советую вам проверить буфер протокола Google .Если нет, то это действительно дело вкуса, если только вы не планируете делать вызовы AJAX для этого API, в этом случае я бы без сомнения выбрал JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...