我有一个有效的Json格式的字符串,它看起来像这样:
{
"message": "success",
"result": {
"46620": {
"course_id": "29",
"en_title": "Google Analytics (Basic)",
"fa_title": "مبانی گوگل آنالیتیکز",
"badge_link": "http://www.darsnameh.com/badge/index.php?user=46620&badge="
},
"49449": {
"course_id": "16",
"en_title": "Multimedia Reporting 1- Reporting in the Internet Age",
"fa_title": "گزارش‌گری چندرسانه‌ای ۱- گزارشگری در زمانه‌ی اينترنت",
"badge_link": "http://www.darsnameh.com/badge/index.php?user=49449&badge="
},
"55480": {
"course_id": "33",
"en_title": "HTML for Journalists and Bloggers",
"fa_title": "آشنایی با اچ‌تی‌ام‌ال Ùˆ Ùناوری‌های اینترنت برای روزنامه‌نگاران Ùˆ وبلاگ‌نویس‌ها",
"badge_link": "http://www.darsnameh.com/badge/index.php?user=55480&badge="
},
"59250": {
"course_id": "31",
"en_title": "Twitter",
"fa_title": "توییتر",
"badge_link": "http://www.darsnameh.com/badge/index.php?user=59250&badge="
},
"103716": {
"course_id": "42",
"en_title": "How to write a CV?",
"fa_title": "چگونه رزومه بنویسیم؟",
"badge_link": "http://www.darsnameh.com/badge/index.php?user=103716&badge="
}
}
}
我想阅读不同的字段,例如所有fa_titles,我使用$ obj = json_decode($ str,true);将其转换为Json,然后将echo sizeof($ obj ['result']);告诉我它有5个结果对象,但是如何才能访问fa_title或en_title字段呢?
答案 0 :(得分:3)
要遍历所有结果,这样的事情应该这样做:
$obj = json_decode($str);
foreach ($obj->result as $result)
{
$fa_title = $result->fa_title;
$en_title = $result->en_title;
}
答案 1 :(得分:2)
在JSON中,数组由括号([
和]
)指定,而字典只有大括号({
和}
)。
您可以通过$obj['result']['46620']['en_title']
单独访问每个结果对象。
结果对象是关联数组的关联数组(也称为字典)。
您还可以使用foreach
循环遍历每个对象,如this question