2013-11-27 8 views
1

Попытка узнать JSON. Выполнение некоторых простых упражнений, но не может пройти мимо этого. Я переучивал учебник примерно 30 раз. Любые указатели?Не удается получить данные из массива JSON

вот JSON:

{ 
    "name": "Username", 
    "profile_name": "profile_username", 
    "profile_url": "http://myapi.net/profile_username" 
    "courses": [ 
    { "name": "English 340" }, 
    { "name": "History 202" }, 
    { "name": "Underwater Basket Weaving" } 
    ] 
} 

Это в переменной $ JSON_array, а вот цикл Еогеасп я пытаюсь использовать, чтобы имена курса и положить затем в неупорядоченном списке.

<ul> 
    <?php for($i = 0; $i < count($JSON_array->courses); $i++): ?> 
    echo '<li>'; 
    echo $JSON_array->{'courses'}[$i]->{'name'}; 
    echo '</li>'; 
    <?php endfor; ?> 
</ul> 

Tis ничего не делает ... Мой исходный код показывает пустые элементы списка

+1

'var_dump ($ JSON_array)' –

+0

вы используете 'for'. использование 'foreach' будет работать –

ответ

0

вам не хватает , после PROFILE_URL

$json = '{ 
    "name": "Username", 
    "profile_name": "profile_username", 
    "profile_url": "http://myapi.net/profile_username", 
    "courses": [ 
    { "name": "English 340" }, 
    { "name": "History 202" }, 
    { "name": "Underwater Basket Weaving" } 
    ] 
}'; 



$arr = json_decode($json); 
?> 

<ul> 
    <?php for($i = 0; $i < count($arr->courses); $i++): 
    echo '<li>'; 
    echo $arr->{'courses'}[$i]->{'name'}; 
    echo '</li>'; 
    endfor; ?> 
</ul> 
+0

ERMAGHERD !!! Я собирался вырвать мои короткошерстные! Я переписал эту эхо-линию около миллиарда раз! Это был тупой JSON, который я использовал для этого упражнения, которое нарушало функцию! – KingRichard

+0

да, это случается несколько раз! Если вы получили меня правильно, вы можете принять ответ. –

0

Попробуйте

<ul> 
    <?php foreach($JSON_array->courses as $course): ?> 
     echo '<li>'; 
     echo $course->name; 
     echo '</li>'; 
    <?php endforeach; ?> 
</ul> 

Обновлено: Кроме того, ваш JSON является недействительным !! "profile_url": "http://myapi.net/profile_username" Вы не запятая в конце этой линии

1

Попробуйте это:

$json = '{"name": "Username","profile_name": "profile_username","profile_url": "http://myapi.net/profile_username", 
"courses": [ 
    { "name": "English 340" }, 
    { "name": "History 202" }, 
    { "name": "Underwater Basket Weaving" } 
    ] 
}';//comma was missing after profile_url 

$arr = json_decode($json,true);//encode as an associative array 

<ul> 
<?php 
    foreach($arr['courses'] as $course){ 
    echo '<li>'; 
    echo $course['name']; 
    echo '</li>'; 
    } 
?> 
</ul> 
Смежные вопросы