Надежда С.
349 повідомлень
#9 років тому
Здравствуйте. И это опять я...
Получаю JSON строку {"response":{"count":1,"users":}}

Подскажите, пожалуйста, как записать 123456 в $users ?

Пробовала так:
$json_decode = json_decode('{"response":{"count":1,"users":}}');
$users = $json_decode->response->users;
echo $users;


Но $users пуст...
Надежда С.
349 повідомлень
#9 років тому
вариант представленный в 1 сообщении оказывается работает, но не работает в боевых условиях

Так работает
$json_decode = json_decode('{"response":{"count":1,"users":}}');
$users = $json_decode->response->users;
echo $users; //выводит 123456

Так не работает
$get_contents = file_get_contents("https://api.vk.com/блаблабла");
echo $get_contents; //выводит {" response":{" count":1," users":}}
$json_decode = json_decode($get_contents);
$users = $json_decode->response->users;
echo $users; //пусто...
Олег Р.
600 повідомлень
#9 років тому
Вы должны получить массив(JSON), из этого массива прочитать... + могут буть проблемы с  кодировками...
Надежда С.
349 повідомлень
#9 років тому
Дурочка, забыла включить вывод ошибок.
Catchable fatal error: Object of class stdClass could not be converted to string in test.php on line 7
Андрей А.
798 повідомлень
#9 років тому
Json_decode($json, true) и дальше работаете как с обычным массивом.
json_last_error() может пригодиться, показывает последнюю ошибку 
Надежда С.
349 повідомлень
#9 років тому
Var_dump
object(stdClass)#1 (1) { =>
object(stdClass)#2 (2) {
=>
int(1)
=>
array(1) {
=>
int(123456)
}
}
}
Елена Б.
6863 повідомлення
#9 років тому
" response"
Пробелы вначале тут и дальше на выводе присутствуют или тут типограф шутит? 
Если присутствуют, то  делайте массивом, как написал b0nn1e, и не забывайте в ключе этот пробел.
Надежда С.
349 повідомлень
#9 років тому
floppox, сама не поняла на каком этапе взялся пробел, конечно же все без пробелов.
Спасибо всем, проблема благодаря вам решена!

Если кто то вдруг знает...
Через раз file_get_contents() выдает ошибку таймаута. То есть, сервер вк доступен через раз. Как можно заново переподключиться, если в течении 3 сек не удалось получить json ответ?
То есть выделить для функции file_get_contents() время на выполнение 3 секунды, если пусто, то пробуем заново необходимое кол-во раз пока не получим json

PHP Warning: file_get_contents(url): failedtoopenstream: Connection timed out in
Дмитрий Ч.
218 повідомлень
#9 років тому
Цитата (WebAir):
То есть выделить для функции file_get_contents () время на выполнение 3 секунды, если пусто, то пробуем заново необходимое кол-во раз пока не получим json


вам нужен параметр timeout