Ответ API php curl rest не в формате json

Я делаю запрос на скручивание после публикации

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
        curl_setopt($ch, CURLOPT_POST, 1);
        $headers = array();
        $headers = ["Content-Type:application/json","Accept:application/json"];
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        $result = curl_exec($ch);
        if (curl_errno($ch)) {
            echo 'Error:' . curl_error($ch);
        }
        curl_close ($ch);
        return $result;

Приведенный выше запрос curl должен возвращать строку в формате json, но получать строку в форме объекта javascript.

string(68) "{data:{errorCode:AC01,errorMessage:SansID 53563857 is exist.}}"

Где, когда я пытаюсь сделать то же самое из post man api, я возвращаю идеальный json.

{"data":{"errorCode":"AC01","errorMessage":"SansID 53563857 is exist."}}

Пожалуйста, дайте мне знать, где я делаю неправильно.


person user1837779    schedule 27.07.2018    source источник
comment
Какой бы ответ вы ни получили, это не вина функций curl_*. Никто не сможет посоветовать этот API, не зная о нем больше.   -  person mario    schedule 27.07.2018
comment
вы используете var_dump() для печати данных ответа?   -  person sohan verma    schedule 27.07.2018
comment
я думаю, что ответ API в порядке, пожалуйста, используйте метод json_decode() для преобразования json в массив и распечатайте это значение с помощью метода print_r.   -  person sohan verma    schedule 27.07.2018
comment
@sohanverma я использовал dd(), когда json_decode() возвращает строку NULL   -  person user1837779    schedule 27.07.2018
comment
Хорошо, используйте json_decode после $result = curl_exec($ch); линия. используйте этот код: $responseArray = json_decode($result); print_r($responseArray); умереть; пожалуйста, проверьте мое предложение и дайте мне знать, если все еще та же ошибка.   -  person sohan verma    schedule 27.07.2018
comment
@sohanverma да, я сделал это, получил NULL   -  person user1837779    schedule 27.07.2018
comment
Пожалуйста, пришлите мне имя API и URL-адрес API?   -  person sohan verma    schedule 27.07.2018


Ответы (1)


Используйте json_decode для преобразования строки в объект (stdClass) или массив: у меня была такая же проблема при работе с API WordPress (cURL) и Laravel (passport), который возвращал JSON, но в строковом формате. Я сохранил ответ

//save json string into variable json object and return result
$response = curl_exec($curl);
//convert t
return (json_decode($response));

обратитесь к этой ссылке здесь для аналогичного решения

Посмотрите этот снимок экрана консольных журналов до и после исправления

person Software Developer    schedule 29.08.2019