JSON в приложениях не-JavaScript

Профессионал Дельфи 2007 IDE (скоро, чтобы быть Дельфи 2009)

Автоматизированный Сервер Сборки поблочное тестирование FinalBuilder 6

Код DUnit

, представляющий создание AQTime

Установщика управление InnoSetup

Справочным файлом Справка & Руководство

Моделирование кода и Код дизайна ModelMaker 9

, форматирующий Управление исходным кодом Средства форматирования

Кода джедая Подрывная деятельность и отслеживание ошибки TortoiseSVN

создание отчетов ошибки Jira

и вход сравнение файлов MadExcept

и слияние Вне всякого сравнения

Объектная платформа персистентности tiOPF

UI, тестирующий ???

документация Кода ???

5
задан Jim Ferrans 9 August 2010 в 02:27
поделиться

8 ответов

JSON подходит для этого использования и будет более компактным, чем XML. (Мы широко используем его в приложениях, отличных от Javascript, и позволяем потребителям наших веб-служб REST указывать, хотят ли они данные в представлениях XML, JSON или даже XHTML.)

Обновление: где проблема с пропускной способностью , вы, вероятно, можете получить сжатие на 50-70% с помощью GZIP-кодирования / декодирования вашего XML или JSON. См. GZipStream .

14
ответ дан 18 December 2019 в 06:12
поделиться

Поскольку JSON широко используется серверами веб-приложений для связи с Javascript в браузере (AJAX), существует множество Библиотеки кодирования / декодирования JSON для любого языка, который вы можете себе представить. Например, Python имеет 6 различных реализаций на выбор.

Основное преимущество использования JSON для «больших объемов» данных заключается в том, что время анализа для декодирования данных немного меньше, чем при анализе XML. Теперь возможно, что ваши пары «ключ-значение» достаточно просты, чтобы время анализа не имело значения, но если значения содержат какие-либо составные объекты, тогда JSON будет быстрее.

6
ответ дан 18 December 2019 в 06:12
поделиться

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

Хорошо, кто-то, вероятно, только что проголосовал за меня, потому что спецификация JSON различает строки и числа , логические значения и массивы. Но мой ответ на это: какое число вы получаете? Для сравнения: 32-битное целое число или тысячное число с плавающей запятой?

XML позволяет хранить метаданные в атрибутах. Например, атрибут xsi: type , как определено схемой XML. Обе стороны, конечно, еще должны прийти к соглашению о том, что означают атрибуты, но есть много случаев, когда метаданные важны.

2
ответ дан 18 December 2019 в 06:12
поделиться

ИМО, если вы собираетесь продолжать работу и хотите иметь возможность обновить приложение (что практически всегда так), вам следует создать код сериализации вручную и создать документированный формат файла. Иначе в какой-то момент вас ждут большие неприятности.

-4
ответ дан 18 December 2019 в 06:12
поделиться

Конечно, на самом деле JSON намного лучше, чем XML, по следующим причинам:

  • API для чтения / записи намного (намного) проще.
    • Получение значений так же просто, как чтение ключей из словаря.
  • Он менее подробный, более легко читаемый простыми смертными.
    • Это также означает, что огромные данные занимают меньше места и меньше времени для анализа.
2
ответ дан 18 December 2019 в 06:12
поделиться

Я считаю, что JSON менее подробен, чем XML, и в разработке есть очень хорошая база данных под названием CouchDB , которая позволяет напрямую хранить / искать документы JSON.

4
ответ дан 18 December 2019 в 06:12
поделиться

Он компактнее, чем XML, и в некоторых случаях быстрее анализируется. Так что я обычно предпочитаю это.

С другой стороны, XML действительно решает некоторые проблемы спецификации, предоставляя решения (fe-кодировки).

Однако я могу просто написать в своей спецификации «Вы должны использовать только UTF-8» а затем проблема спецификаций кодирования решена.

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

Я написал по крайней мере один протокол, использующий JSON, и пользователи этого никогда не жаловались на использование JSON вместо XML, несмотря на то, что он был на Microsoft.NET :)

0
ответ дан 18 December 2019 в 06:12
поделиться

Будет ли это лучше для вас, будет зависеть от ваших приоритетов, таких как скорость или гибкость.

Я переместил приложение C # на использование JSON, потому что скорость была наиболее важной проблемой для мне. Я бы сам сериализовал данные на сервере и удалил все лишнее, например, имя каждого свойства, чтобы ускорить мою передачу, и я нашел время, чтобы отправить запрос на сервер, получить ответ, и процесс был быстрее с JSON, чем использование веб-службы или возврат XML.

Для десериализации из C # у вас есть несколько вариантов на http://json.org .

Итак, прежде чем вы решите внести изменения, вы должен иметь несколько модульных тестов, а затем получить некоторые числа, сделав один и тот же вызов client -> server -> client примерно 100 раз, чтобы получить лучшие результаты.

2
ответ дан 18 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: