YAML против GPB против JSON против XML, который лучше всего подходит для каких обстоятельств?
Я хотел бы знать достоинства и недостатки
- YAML
- Буферы протокола Google
- JSON
- XML
Я хотел бы сделать одну общую структуру для сериализации, которая будет использоваться Perl и Java Web Application. Я изучил и получил информацию, но все же хотел бы знать точные различия.
Ответы
Ответ 1
Определите "лучше". Если вы хотите, чтобы ваши данные хранились и извлекались, все будет работать. Yaml, json и XML являются удобочитаемыми/редактируемыми; protobuf является более сложным и более простым (меньше циклов процессора) для синтаксического анализа. Json отлично подходит для клиентов JavaScript.
Выберите свой яд. Или выберите несколько: вам разрешено использовать более одного.
Ответ 2
Нет абсолютного лучшего формата, все они могут иметь преимущества в определенных ситуациях.
На каком языке вы используете, на разных языках могут быть разные уровни поддержки для разных форматов.
-
Если скорость кодирования/декодирования или пространство критически важны, то протокол-буфер будет хорошим выбором. Но протокольные буферы - это двоичный формат и для его чтения требуется либо редактор специалиста, либо преобразование в/из текстового формата. Другие форматы можно читать с помощью стандартного текстового редактора
-
JSON отлично, если вам нужно читать/писать из JavaScript
-
XML является наиболее широко поддерживаемым (и поддержкой, включенным на многих языках). XML также имеет множество инструментов поддержки, но XML также является наиболее подробным.
-
YAML вполне читабельна и компактнее, чем XML. Он также менее распространен, имеет меньшую поддержку, и вы, как правило, должны включать библиотеку для ее использования.
также см.
Ответ 3
Мое ИМХО:
- YAML лучше для конфигураций make
- JSON лучше переносит данные между приложениями
- XML лучше сделать структурированные данные в популярном формате, что должно быть не просто читаемым
- Буферы протокола Google являются альтернативой XML, но более компактны и не читаются
Btw, вы можете провести некоторые эксперименты с данными здесь
Yaml, Jsom, конвертер Xml онлайн
.