Взгляните на LINQ to SQL ...
Пробовал пару месяцев назад и никогда не оглядывался ....
Одобрите XML по JSON, когда любой из них будет верен:
JSON по XML, когда все они верны:
JSON всегда предпочтителен с точки зрения обработки клиентского браузера, должен сделать для парсинга данных. Кроме того, JSON является форматом обмена данными легкого веса.
XML, анализирующий всегда, использует партию ресурсов браузера и должен избежаться так, как мы можем, если иначе не требуется.
Я выбрал бы XML over JSON, если я должен проверить блок входящих данных, потому что XML nativly поддерживает это через XSD.
Обычно JSON более компактен, и быстрее проанализировать.
Предпочитают XML если:
Один важный случай (почти) XML: попытайтесь обнаружить, когда отправка отрывков HTML будет более выгодной, чем отправка необработанных данных. AHAH может сделать чудеса в простых приложениях, все же часто пропускаемых. Обычно этот стиль предполагает, что сервер отправляет отрывки HTML, которые будут встроены в веб-странице без обработки.
Обычно в CSS случаев AHAH усиливается к макс. для массирования отрывков визуально и реализации простых условных выражений как сокрытие/показ соответствующих частей отрывка с помощью определенных для пользователя или специализированных настроек.
Рассмотрение Вашего конкретного случая, где Вы уже делаете JavaScript на стороне клиента, я пошел бы с JSON по этим причинам:
, Так как JSON является собственным к JavaScript, который необходимо было бы записать меньшему количеству кода стороны клиента - Всего eval()
(или, еще лучше, JSON.parse()
), JSON представляют в виде строки и получают объект, который можно использовать.
В то же время оценка JSON на клиентском будет более эффективным, и поэтому быстрее.
сериализация JSON производит более короткие строки, чем XML. Используя JSON уменьшит объем данных, натыкающийся на провод, и улучшит производительность в этом отношении.
Вот некоторые дополнительные материалы для чтения: http://www.subbu.org/blog/2006/08/json-vs-xml
JSON является собственным кодированием для JavaScript. Это должно быть намного быстрее и легче работать с.
Я использую JSON, если я не обязан использовать XML. Более просто понять, и (потому что требуется меньше конфигурации наверху), для чтения и записи легче к программе, если библиотеки доступны в Вашем контексте, и они довольно повсеместны теперь.
, Когда Amazon сначала представил их каталоги как веб-сервис, они предложили и JSON и XML. Что-то как 90% лиц, осуществляющих внедрение выбрало JSON.
Я использую JSON для любого вида конфигурации, обмена данными или обмена сообщениями. Я использую XML, только если я имею к по другим причинам или семантически повысить подобные документу данные.
JSON легок и быстрее для парсинга. XML немного более трудно проанализировать и является медленнее, чтобы проанализировать и передать (в большинстве случаев).
, Так как Вы используете jQuery, я предлагаю использовать JSON: jQuery может получить данные JSON и преобразовать, это в JavaScript возражает автоматически. На самом деле Вы можете преобразовывать данные JSON в объект JavaScript использование оценки . XML должен был бы быть транссведущим вручную Вами (я не знаю, как это работает в JavaScript, но это - трудное/больше раздражение на большинстве языков, я пользовался библиотеками XML с).
Некоторые другие вещи, с которыми я столкнулся в XML по сравнению с областью JSON:
JSON очень хорош для
, Что означает, что это имеет тенденцию любить массив или вложенный массив. Однако JSON отсутствует оба
Поэтому, если бы необходимо было объединить два или больше сервиса JSON то могли бы быть потенциальные конфликты пространства имен. Так как тот упомянутая JSON, может использоваться приблизительно для 90% того же самого, для которого может использоваться XML при обмене данными, по моему опыту.
И XML и JSON поддерживаются Microsoft. Литералы XML были новой замечательной функцией в VB 9. В следующей версии ASP.NET 4.0 JSON необходимость для усиления питания клиентской шаблонной обработки.
От вопроса Вы попросили, чтобы казалось, что JSON мог бы быть выбором для Вас, поскольку легко обработать на стороне клиента с или без jQuery.
Когда вы идете по маршруту JSON, вы сталкиваются с теми же проблемами, что и XML столкнулся 10 лет назад:
Смешивание данных из двух разных источников в один пакет JSON может вызвать элемент этикетки, чтобы столкнуться друг с другом. Смешивать упаковочный лист и счет-фактура, и вдруг адрес От может означать что-то совсем другое. Вот почему XML имеет пространств имен .
Преобразование между разными JSON структуры потребуют написания мирской код. Более декларативный способ отображение данных упростило бы работу. Вот почему XML имеет XSLT .
Описание пакета JSON структура - ее поля, типы данных, и т. д. - необходимо для того, чтобы люди подключиться к вашим услугам. Его необходимо иметь язык метаданных для этого. Вот почему в XML есть схемы .
Проведение двух одновременных клиент-серверные разговоры занимают забота. Если вы спросите у сервера два вопросы и получите один ответ, как ты знаешь, на какой вопрос он отвечает? Вот почему XML имеет WS-корреляцию .
У меня есть сообщение в блоге на эту тему. история веб-протоколов (например, SOAP, XML, JSON, REST, POX и т. д.) с кратким описанием, а также некоторыми преимуществами и недостатками каждого из них: http://www.servicestack.net/mythz_blog/?p= 154
Я действительно думаю, что можно найти много общего между XML и JSON, сравнив различия между динамическими (JSON) и статическими (XML) языками.
По сути, XML - это более строгий, более жесткий формат сериализации, который можно дополнительно проверить с помощью сопроводительной схемы (которая является либо XSD, либо DTD). XSD довольно сложны и позволяют описывать множество различных типов, например. Даты, время, перечисления, типы, определяемые пользователем, и даже наследование типов и т. Д. SOAP эффективно строится на основе набора функций XML, обеспечивая стандартизованный способ описания ваших веб-сервисов (например, типов и операций) через WSDL. Многословие и сложность спецификации WSDL означает, что разработка может быть более утомительной, но в то же время вам доступно гораздо больше инструментов, и большинство современных языков предоставляют автоматизированные инструменты для генерации ваших клиентских прокси, взяв на себя некоторую нагрузку. выключен при попытке взаимодействия с внешними службами. (Хотя в то же время я считаю сгенерированные прокси сами по себе обузой при работе с часто меняющимися веб-службами).
Я бы по-прежнему рекомендовал использовать XML для ваших веб-служб, если у вас есть четко определенная «корпоративная служба», которая не подвержена частым изменениям, или если к вашей веб-службе требуется доступ с множества разных языков.
При всех своих преимуществах XML имеет также и недостатки. Он полагается на пространства имен, чтобы обеспечить типизированный расширяемый формат и позволяет вам указывать атрибуты и элементы в одном документе. Наличие разных пространств имен в одном документе означает большую часть времени при использовании синтаксического анализатора Xml для извлечения данных, вам также потребуется предоставить пространство имен каждого элемента, который вы хотите получить / пройти. Он также экстраполирует полезную нагрузку, делая ее более подробной, чем нужно. Возможность вывода атрибутов и элементов означает, что ваши классы плохо отображаются в XML-документе. Одни только эти функции делают его плохо подходящим для программирования для большинства языков, делая его более утомительным и громоздким в работе. Microsoft распознала и упростила это в своем сериализаторе DataContract, отказавшись от атрибутов XML и просто сохранив свойства карты классов только для элементов Xml.
JSON, с другой стороны, является полной противоположностью XML во многих отношениях, поскольку он очень слабо типизирован и имеет простую поддержку только основных типов: Number, Bool, string, Objects и Arrays. Все остальное, по сути, должно укладываться в строку. Это не очень хорошо, когда вы пытаетесь общаться через языковые границы, поскольку вам нужно будет придерживаться некоторых нестандартных спецификаций вне диапазона, если вы хотите поддерживать более конкретные типы.С другой стороны, его ограниченный набор функций обеспечивает хорошую программную совместимость с большинством языков - и идеально подходит для JavaScript, поскольку строка JSON может быть оценена непосредственно в объекте JavaScript.
Размер и производительность
У меня есть несколько тестов базы данных Northwind , в которых сравниваются размер и скорость между реализациями Microsoft XML и JSON. По сути, XML более чем в 2 раза превышает размер JSON, но в то же время похоже, что Microsoft приложила много усилий для оптимизации своего XML DataContractSerializer как это более чем на 30% быстрее, чем их JSON. Кажется, что вам нужно найти компромисс между размером и производительностью. Не довольный этим фактом, я решил написать свой собственный быстрый JsonSerializer , который теперь в 2,6 раза быстрее, чем MS XML - так что лучше из обоих миров :).