2014-09-23 2 views
1

Помогите мне скрыть название игр с URL-адресаРезультаты декодирования G2A (json) до массива

Эта страница выводит формат json. Я пытаюсь преобразовать его в массив, но мой код не работает. Пожалуйста, помогите мне!

$url = 'https://search.g2a.com/items/select?json.wrf=jQuery111003403934023808688_1411464896728&q=NOT+type%3Aindividual+AND+(-type%3Agaming+AND+wholesaleQty%3A%5B1+TO+*%5D+AND+wholesaleMinPrice%3A%5B0+TO+198%5D)&wt=json&start=0&rows=10000&sort=sortOrder+DESC&_=1411464896757'; 
$content = file_get_contents($url); 
$json = json_decode($content, true); 

echo "<pre>"; 
print_r($json); 
echo "</pre>"; 
+0

Я попытался загрузить содержимое вашего URI в jsonlint и, похоже, не будет действительным json. Кроме того, 'print_r()' не будет отображать значение, если false (я думаю, что 'json_decode()' return false). – Debflav

ответ

4

Вы должны удалить параметр JSONP json.wrf из URL первой:

https://search.g2a.com/items/select?q=NOT+type%3Aindividual+AND+(-type%3Agaming+AND+wholesaleQty%3A%5B1+TO+*%5D+AND+wholesaleMinPrice%3A%5B0+TO+198%5D)&wt=json&start=0&rows=10000&sort=sortOrder+DESC&_=1411464896757 

Это вернет правильный результат JSON.

+0

Гораздо лучший ответ, чем мой, +1 – jedwards

+0

Хорошо наблюдаемый. +1 OP не нужно писать дополнительный код. – Debflav

1

Выход из этого URL (который я в настоящее время начинается с):

jQuery111003403934023808688_1411464896728({"responseHeader" ... 

Это не чистый ответ JSON, а скорее JSONP ответ.

Если вы просто пытаетесь разобрать его в PHP, может быть что-то вроде:

$url = ...; // Your URL Here 
$data = file_get_contents($url); 
$pos = strpos($data, '{'); 
$data = substr($data, $pos, strlen($data) - $pos - 2); 
$json = json_decode($data, true); 

echo "<pre>"; 
print_r($json); 
echo "</pre>"; 
Смежные вопросы