Почему повсеместно используется json?
Почему для REST используется json? Работая с модами для Minecraft я обнаружил формат NBT. Грубо говоря, это простая map с парой "ключ"-объект. Для сериализации/десериализации в одной из реализаций используется DataOutputStream.
В API faster xml есть возможность распарсить любой json объект в LinkedHashMap.
Соответственно у меня возник вопрос. Почему повсеместно используется json формат? Или скажем xml. Разве в них не сильно много лишней информации, которая замедляет процесс парсинга?
Разве сериализация/десериализация map (например как в NBT) не будет быстрее?
Ответы (2 шт):
Поскольку NBT (Named Binary Tag) -- бинарный формат, то ответ лежит на поверхности -- работа с таким форматом может быть быстрее, но он менее удобен для работы/отладки REST API, тогда как в JSON данные могут быть достаточно компактно представлены именно в текстовом виде.
Сложные структуры данных чаще всего представлены в виде некоторой иерархии объектов (в виде дерева, если угодно). Я думаю это связано с тем, что так проще и естественней для человеческого восприятия. Так вот, при сериализации таких структур нередко у программистов возникает потребность "в ручную" читать получившейся результат. И с этой точки зрения удобнее всего подходит формат естественным образом представляющий иерархию некоторых объектов в виде обычного текста. XML и JSON хорошо справляются с этой задачей. Ну и ещё их очень удобно парсить.