2012-12-25 5 views
190

Я хотел бы знать достоинства & де-Заслугибуферов протокола Google против JSON против XML

  • Google протокола буферы
  • JSON
  • XML

Я хочу реализовать одну общая структура для двух приложений, одна на Perl и вторая на Java. Таким образом, хотелось бы создать общий сервис, который может использоваться как технологией, то есть Perl & Java.

Оба являются веб-приложениями.

Просьба поделиться со мной своими ценными мыслями & предложение об этом. Я видел много ссылок на google, но у всех есть смешанные мнения.

+9

И вы думаете, что здесь может быть консенсус? – Barmar

+0

JSON vs XML: http://stackoverflow.com/questions/4862310/json-and-xml-comparison –

+1

Спасибо большое. Но хотелось бы узнать больше протокольных буферов против JSON. –

ответ

227

Json

  • люди читаемый/редактируемые
  • может быть разобран, не зная схемы заранее
  • отличной поддержки браузера
  • менее многословной, чем XML

XML

  • человек читаемым/редактируемые
  • может быть разобрано, не зная схемы заранее
  • стандарт SOAP и т.д.
  • хорошая поддержка инструментов (XSD, XSLT, SAX, DOM и т.д.)
  • довольно многословен

Protobuf

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

Все они имеют хорошие поддержка на большинстве платформ.

Лично я редко использую XML в эти дни. Если потребитель является браузером или публичным API, я использую json. Для внутренних API я использую protobuf для производительности. Предложение как по публичному API (либо через заголовки, либо отдельные конечные точки) также хорошо работает.

+5

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

+0

Так сложно получить сравнительно высокую производительность от JSON до Protobuf? –

+7

XML также позволяет описательный стиль, в котором текст чередуется с тегами, такими как ' Это повествовательный стиль. Теги могут появляться <восклицательный знак /> в середине текста '. Это уникальная особенность XML по сравнению с JSON и протокольными буферами. – Paul