2016-05-16 2 views
1

Это мой JSON файл:Отображение части JSON файла

{"message":"yes","info":{"ID":1,"Items":[{"Name":" Jim"},{"Name":" Bob"}]}} 

Используя приведенный ниже код, я пытаюсь прочитать файл в формате JSON и эхо каждое значение Name(который должен быть Джим и Боб), однако я представляется с ошибкой:

syntax error, unexpected 'as' (T_AS), expecting ';'

<?php 
$homepage = 'jsonfile'; 
$data = file_get_contents($homepage); 
$users = $data['Items']; 
for($users as $user) { 
echo $user['Name']; 
} 
?> 
+1

Вы никогда не расшифровываете строку json в массив. '$ data = json_decode (file_get_contents ($ homepage), true);' – JimL

+2

И синтаксис для цикла for неправильный, вы, вероятно, захотите использовать 'foreach' – JimL

+0

@JimL Спасибо за ваши ответы. При использовании 'foreach', мне предоставляется ошибка' Undefined index: Items' и 'Invalid argument for foreach()' –

ответ

2

Проверить онлайн https://3v4l.org/qTAXb

Расшифруйте JSON строку, используя json_decode и использовать Еогеасп цикл по массиву. Получите все имя в массив $arr и последний размойте их, используя implode.

$json = '{"message":"yes","info":{"ID":1, "Items":[{"Name":" Jim"},{"Name":" Bob"}]}}'; 
$result = json_decode ($json); 

$arr = array(); 
foreach($result->info->Items as $value){ 
    $arr[] = $value->Name; 
} 
echo "<div>".implode("</div>, <div>", $arr)."</div>"; //Jim, Bob 
+0

Кажется, я получил ошибку 'Undefined property: stdClass :: $ Items' и' Недопустимый аргумент для foreach() ' –

+0

Нет, я тестирую его. –

+0

[https://3v4l.org/IAaHo](https://3v4l.org/IAaHo) –

1

во-первых, как отмечается в комментарии, вы должны декодировать JSON в массив.

Во-вторых, вы пытаетесь использовать for() (see docs here) петлю вместо foreach() (see docs here).

Ваш код должен выглядеть так:

$data = json_decode('{"message":"yes","info":{"ID":1,"Items":[{"Name":" Jim"},{"Name":" Bob"}]}}', true); 

$users = $data['info']['Items']; 
foreach($users as $user) { 
    echo $user['Name']; 
} 

См working demo here.

+0

Спасибо за ваш ответ. При использовании foreach я получаю сообщение об ошибке «Undefined index: Items» и 'Invalid argument for foreach()' –

+0

Я попытался в песочнице, и часть цикла работает. Должно быть, что-то не так с вашим json. – sevavietl

+0

Я снова просмотрел файл JSON и обнаружил, что я что-то упустил, что может быть причиной проблемы. Пожалуйста, уточните мой обновленный вопрос. –

Смежные вопросы