Postman: из json в form-data
Допустим, у нас есть данные в формате JSON:
Как их можно быстро сконвертировать в multipart/form-data?
Для этого нужно выполнить несколько простых действий.
Преобразуем JSON
Преобразуем JSON в формат, который понимает Postman. Для этого создаем файл convert.php, в который вставляем наш JSON.
- convert.php
<?php function transform(array $data): string { $ret = http_build_query($data, '', "\n"); $ret = str_replace(['%5B', '%5D', '=', '%3D'], ['[', ']', ':', '='], $ret); $ret = preg_replace_callback('~^(.*):(.*)$~m', function ($line) { return sprintf('%s:%s', $line[1], urldecode($line[2])); }, $ret); return $ret; } // Вставить JSON в это место $json = <<<'NOWDOC' { "session_uuid": "{{forms_session_uuid}}", "fill_percent": 100 } NOWDOC; echo transform(json_decode($json, true));
Запускаем скрипт из консоли:
php convert.php
Если возникает такая ошибка:
PHP Fatal error: Uncaught TypeError: transform(): Argument #1 ($data) must be of type array, null given
то нужно проверить валидность JSON, например использована конструкция
"personalDataMobilePhone": {{form_phone}}
- тут надо добавить кавычки.