Как мне проанализировать очень большой ответ json, возвращенный из вызова API

#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 все равно начинает искать.