#php #json #laravel
#php #json #laravel
Вопрос:
Я получаю доступ к данным из конечной точки API, используя curl в моем приложении laravel, которое возвращает очень большой ответ JSON. Когда я декодирую этот JSON, кажется, что он декодируется до определенного уровня и останавливается там. Вывод приведен ниже. Вы можете ясно видеть, что он создает массив, а затем останавливается, остальное представляет собой повторяющуюся строку. Я хотел перебрать ответ, создав вывод CSV.
$url = $request->url;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_TIMEOUT => 300000,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
// Set Here Your Requesred Headers
'Content-Type: application/json',
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
$data = json_decode($response, true);
dd($data);
JsonToCsv::exportCSV($data);
Пожалуйста, как мне правильно проанализировать этот большой ответ JSON?
Заранее благодарю
Комментарии:
1. Хм, я подозреваю, что в этот момент в JSON есть какая-то проблема с кодировкой текста, который он содержит. Я бы внимательно посмотрел на содержимое в этом первом неожиданном значении. Я видел похожие проблемы, когда значения в JSON необходимо было кодировать с помощью
utf8_encode
перед запуском json_encode в наборе данных2. Я даже не могу получить доступ к этой области ответа. Это похоже на строку строки. Как мне выполнить кодирование и окончательное декодирование?
3. Я бы начал с того, что повторил полное необработанное
$response
значение и вставил его где-нибудь, как здесь , а затем просмотрел этот текст на предмет потенциальных проблем. Если это проблема с кодировкой, ее, вероятно, необходимо исправить в источнике, где текст кодируется в формате json и отправляется обратно из API, но именно там Id все равно начинает искать.