У меня есть json-файл, и я хочу отображать его с помощью PHP. Мой ниже код дает мне ошибку,
$json = file_get_contents('data.json'); $data = json_decode($json,true); $users = $data['devices']; foreach($users as $user) { echo $user['id']; echo $user['user']; }
Когда я заменяю третий LOC на $users = $data['user'];
то он отображает некоторые данные с одним алфавитом, я не знаю, в каком порядке.
Файл Data.json содержит следующие данные:
{ "user": { "id":"#03B7F72C1A522631", "user":"test@mail.com", "password":"123", "email":"test@mail.com", "name":"m", "creationDate":1385048478, "compression":true, "imageProfile":"medium", "videoProfile":"medium", "blockAdvert":true, "blockTracking":true, "devices":[ { "id":"#13C73379A7CC2310", "udid":"cGMtd2luNi4xLV", "user":"test@mail.com", "creationDate":1385048478, "status":"active", }, { "id":"#FE729556EDD9910D", "udid":"C1N1", "user":"test@mail.com", "creationDate":1385291938, "status":"active", }] }, "status": { "version":"0.9.5.0", "command":"getuser", "opf":"json", "error":false, "code":0 } }
Я думаю, что вам может понадобиться отобразить всю информацию об devices
, вы можете изменить свой код на:
$json = file_get_contents('data.json'); $data = json_decode($json,true); // change the variable name to devices which is clearer. $devices = $data['user']['devices']; foreach ($devices as $device) { echo $device['id']; echo $device['user']; }
Я считаю, что вы пропустили 1 узел, попробуйте:
$users = $data['user']['devices'];
Это должно работать;
$json = file_get_contents('data.json'); $data = json_decode($json,true); $users = $data['user']['devices']; foreach($users as $user) { echo $user['id']; echo $user['user']; }
Перед «устройствами» есть один ключ.
Вы не получаете доступ к своему json правильно. Вам нужно получить к нему доступ так.
$yourVariable = $data['users']['devices'];
Попробуй это.