@komarevtsev

Зачем подавать данные в json?

Во всех учебниках пишут, что данные обычно передают в формате JSON. Я не совсем понимаю почему нужно делать именно так?
Допустим я могу через сокетное соединение передавать с node js сервера объект javascript без обертки в json
Допустимо ли так делать?
  • Вопрос задан
  • 2571 просмотр
Пригласить эксперта
Ответы на вопрос 4
Допустим я могу через сокетное соединение передавать с node js сервера объект javascript без обертки в json
Не можете, вебсокеты - это текстовый протокол, для передачи объектов необходима сериализация, и json для этого идеально подходит.
Ответ написан
@Sin_raben
документация
void send(
in DOMString data
);

void send(
in ArrayBuffer data
);

void send(
in Blob data
);
Ответ написан
Комментировать
@VZVZ
Reverse-Engineer, Software Developer, Architect
JSON нужно делать не всегда, а либо в тех случаях, когда требуется, чтобы с API работал не только браузер, но и мобильные клиенты или еще какие-то (которым не нужны готовые данные в HTML, а нужен JSON для парсинга), или когда лучше, чтобы клиент был толстым. Еще JSON, очевидно, несколько облегчает отладку.

В целом, в идеале, бек-енд сайта должен уметь возвращать и HTML для браузера (который JS не нужно парсить => быстродействие на клиенте), и JSON для других целей, и, может быть, и что-то еще.
Так сделано в VK, например.

Это я про HTTP. Если WebSockets все поля кодируют в JSON - ничего страшного, ведь возможен вот такой финт ушами:
{"html": "здесь html"}
И можно еще вот так сделать, элегантно объединив преимущества HTML и часть преимуществ JSON:
{"html": "здесь html", "error": "OK"}
Я подобное в Googleовских сервисах видел. Интересное решение, и определенно имеет право на жизнь.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
json - это удобный формат сериализации данных. Возможность сериализации/десериализации в json есть буквально во всех языках программирования что делает этот формат довольно универсальным.

Если вы не будете его использовать - вам придется реализовывать что-то другое. Это могут быть другие форматы сериализации, например messagepack, или если хотите, запаковывайте данные сами так как хотите, в зависимости от задачи. Но в этом случае вам придется реализовывать сериализацию самостоятельно, а это время. А время это деньги. Потому это должно окупаться (например что бы увеличить пропускную способность использовать свой бинарный формат сериалиализации разработанный исключительно под задачу, хотя это оооочень редко нужно и я сомневаюсь что вам это понадобится ближайшие лет 5-10).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
15 мая 2024, в 22:18
2000 руб./за проект
15 мая 2024, в 22:07
3000 руб./за проект
15 мая 2024, в 22:06
3000 руб./за проект