#javascript #php #json #laravel
#javascript #php #json #laravel
Вопрос:
Я использую внешний API, который выдает мне объект JSON в качестве ответа. Я запускаю несколько вызовов API и пытаюсь добавить их в массив, а затем вернуть все это в мое приложение Vue, но по какой-то причине, при консоли.запишите это, это не отображается так, как должен отображаться объект. Это то, что я получаю…
Вот вызов, который возвращает объект.
$response = $divisionApi->addDivision(
$request->onBoard['division'],
$request->onBoard['division']
);
Но когда я делаю это, объект, кажется, просто преобразуется в длинную строку.
$responseArr[] = array('division' => $response);
$responseArr[] = array('merchant' => $response);
$responseArr[] = array('division' => $response);
return $responseArr;
Комментарии:
1. Какой ожидаемый результат здесь?
2. Ну, обычно при консоли. зарегистрируйте массив объектов в JS вы можете щелкнуть по клавишам объекта и развернуть данные, но это, похоже, превращает объект в одну целую большую строку, которая является двоюродной сестрой ключей и значений.
3.
$response
скорее всего, это json-строка, поэтому вам нужно декодировать данные перед добавлением их в ваш массив:json_decode($response)
4. вам нужно
json_decode
получить ответ json из API, а затем во время возврата вам нужно выполнитьjson_encode
Ответ №1:
Вам нужна json_encode()
функция php. Он принимает ваш массив и преобразует в строку в формате json.
Все наоборот json_decode
.
Документация: https://www.php.net/manual/en/function.json-encode.php .
Если проблема на стороне JS, вам может потребоваться преобразовать строку JSON в объект с помощью JSON.parse()
документации:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse