буфери протоколу google vs json vs XML [закрито]


230

Я хотів би знати достоїнства та недоліки

  • Буфери протоколів Google
  • JSON
  • XML

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

Обидва є веб-додатками.

Будь ласка, поділіться зі своїми цінними думками та пропозиціями щодо цього. Я бачив багато посилань на Google, але всі мають неоднозначну думку.


9
І ти думаєш, що тут може бути консенсус?
Бармар


1
Дякую. Але хотілося б дізнатися більше протокольних буферів проти JSON.
Маной Катірія

19
@Barmar Це не про консенсус, а про раціональний вибір, про плюси і мінуси, добре, що питання було задано ще до того, як мета-поліція почала знижувати якість вмісту ЗП.
Борис Треухов

Раніше я заперечував проти того, щоб такі питання були довільно закриті. Але факт полягає в тому, що якби я консультувався з проектом, який потребував цього вибору, я хотів би отримати набагато більше інформації, ніж зазвичай з'являється в дописі SO; будь-яка порада, яку ви отримаєте тут, є анекдотичною і ґрунтується на майже повному ігноруванні вимог та обмежень вашого конкретного проекту.
Майкл Кей

Відповіді:


279

Джсон

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

XML

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

Протобуф

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

Усі мають гарну підтримку на більшості платформ.

Особисто я сьогодні дуже рідко використовую XML. Якщо споживач - це браузер або публічний API, я зазвичай використовую json. Для внутрішніх API я прагну використовувати протобуф для продуктивності. Пропозиція як у відкритому API (або через заголовки, або окремі кінцеві точки) також працює добре.


8
XML - це більша робота з декодування, але перевірка може бути головною перевагою перед JSON. Перевірка вашої XML за допомогою схеми перед тим, як обробляти платіжну транзакцію, яку вона містить, надає додатковий рівень надійності.
КК.

11
XML також дозволяє розповідний стиль, де текст чергується з включенням тегів, як-от <value>This is a <attention>narrative style</attention>. Tags could appear <exclamation /> in the middle of text</value>. Це унікальна особливість XML у порівнянні з буферами JSON та протоколів.
Пол,

3
@Marc Gravell: Як щодо сенсу сумісності вперед. Моє враження, що це одна з найбільших торгових точок протобуфа?
Thomas Ahle

1
Ігорю Ганапольському, наскільки я розумію, що це в принципі неможливо, оскільки для протобуфів дуже мало необхідного розбору, тоді як фаза обробки тривала і неминуча для json.
Жюль GM

3
Відзначимо, що ви можете використовувати схеми і для JSON.
Ісус Ангуло
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.