REST API: как сжать JSON для метода POST - PullRequest
0 голосов
/ 13 января 2020

Я вызываю REST API в моем проекте для создания некоторых записей. Все работает нормально, но у меня возникла проблема, тело запроса JSON слишком большое (имеет тысячи ключей и значений).

Теперь я хочу сжать тело запроса. Я попробовал это, используя JavaScript

var reqJSON = { ... } // too big JSON object
var compressedJSON = JSON.stringify(reqJSON, null, 0); // converting JSON to String (compression)

Теперь я отправляю строку в теле запроса и преобразовываю эту строку в JSON на стороне сервера.

Мне любопытно, это правильный способ сжатия JSON? Если да, как я могу проверить разницу в размере тела запроса?

Спасибо за ваше время.

Ответы [ 2 ]

0 голосов
/ 13 января 2020

Вы можете использовать gzip для компресса json его нормально работает

0 голосов
/ 13 января 2020

Это вовсе не сжатие.

var reqJSON = { ... } // too big JSON object

Это даст вам JavaScript объект, а не JSON. Возможно, ваша Ajax библиотека преобразует ее в JSON, если вы передадите ее. У нас нет возможности узнать. Если данные должны попасть на сервер, им потребуется сериализация в некоторый формат, который можно отправить по проводам, поэтому что-то должно быть преобразовано до того, как будет сделан HTTP-запрос.

var compressedJSON = JSON.stringify(reqJSON, null, 0); // converting JSON to String (compression)

Это даст вам JSON. Сжатие здесь не требуется.


Если вы хотите сжать его, вам нужно поискать библиотеку, которая может выполнять фактическое сжатие .

...