Буферы протокола Google против JSON против XML

Я хотел бы знать достоинства и недостатки

  • Google Protocol Buffers
  • JSON
  • XML

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

Оба веб-приложения.

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

1 ответ

Решение

Json

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

XML

  • человек читаемый / редактируемый
  • может быть проанализирован, не зная схемы заранее
  • стандарт для SOAP и т. д.
  • хорошая поддержка инструментов (xsd, xslt, sax, dom и т. д.)
  • довольно многословный

Protobuf

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

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

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

Другие вопросы по тегам