Как получить ответ массива json, перечисленный по строкам - PullRequest
0 голосов
/ 11 мая 2018

Я звоню в Json Array из API.Мое сомнение в том, как я получаю все данные.

В API есть раздел, чтобы опробовать ответ, который вы должны получить от API, и когда я делаю это, я получаю данные, перечисленные как здесь

, как вы можетевидите, что 10 строк идут от 0 до 9. Но когда я вызываю массив Json, я получаю это здесь

, как вы можете видеть, что все это грязно.

почему это происходит ??и как я могу это исправить?.

Я называю данные так:

$curl = curl_init();
//adding fields to the curl object to enter the site
curl_setopt($curl, CURLOPT_URL, $my_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);  
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');

//executing the curl call and getting data back
$json = curl_exec($curl);

curl_close($curl); // close the connection
echo $json;

1 Ответ

0 голосов
/ 12 мая 2018

Ответ: это восприятие, а не ошибка как таковая.

Браузеры могут быть очень полезны, когда дело доходит до отображения данных. Когда браузер получает заголовок с соответствующим типом контента для json (я полагаю, это application/json), он пытается проанализировать контент как json. Это ваш первый снимок экрана, когда вы видите данные из источника, где они, вероятно, получают правильные заголовки.

Я ожидаю, что ваш php-скрипт не устанавливает никаких заголовков перед примером кода, который вы нам дали, оставляя самому php решать, какие заголовки отправлять. Это означает, что он обычно возвращается к «text / html» (потому что это то, для чего исторически используется php). Теперь, когда ваш браузер получит этот заголовок, он попытается проанализировать ваш json как html, который не будет работать. Таким образом это печатает это "грязный".

Теперь, чтобы быть совершенно ясным здесь: на первом скриншоте 0..9 в каждой строке, это просто представление, которое предлагает вам ваш браузер, это не явно в данных. данные просто говорят: «это массив, в массиве есть эти элементы». хотя порядок значительный, но в json нет ключей для массивов!

Чтобы «исправить» вашу проблему, вы должны добавить соответствующие заголовки для вашего контента, вероятно,

header("Content-Type: application/json"); 

до того, как ваш код будет достаточным - по крайней мере, если я не ошибаюсь с типом MIME здесь (но я предполагаю, Что такое правильный тип содержимого JSON? содержит правильную информацию).

...