Буферы протокола 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 (либо через заголовки, либо через отдельные конечные точки) также работает хорошо.