這將是非常簡單的問題,但請讓我知道我可以在PHP中做到這一點。PHP:解析JSON樹
我有以下的JSON結構,我需要解析:
{
"X": "CONTENT OF X",
"Y": "CONTENT OF Y",
"Z": "CONTENT OF Z",
"EMAILS": {
"EMAIL A": [{
"Subject": "heading a1",
"Body": "text"
}, {
"Subject": "heading a2",
"Body": "text"
}
],
"EMAIL B": [{
"Subject": "heading b1",
"Body": "text"
}, {
"Subject": "heading b2",
"Body": "text"
}
],
"EMAIL C": [{
"Subject": "heading c1",
"Body": "text"
}, {
"Subject": "heading c2",
"Body": "text"
}
]
}
}
要獲得X節點的內容,我這樣做:
$string = file_get_contents($url);
$json = json_decode($string, true);
echo $json['X'];
這工作得很好,生產:
CONTENT OF X
我也可以FING所有「主題」所有「電子郵件」功能的節點,這樣做:
foreach ($json['EMAILS'] as $value) {
echo $value[0]['Subject']
}
所以我得到:
heading a1
heading b1
heading c1
不過,我不知道如何通過EMAIL陣列迭代,所以它產生的只是標題的下面的列表:
EMAIL A
EMAIL B
EMAIL C
而且這將非常有助於瞭解如何把它結合在一起,所以我得到以下的輸出:
EMAILS - EMAIL A - Subject - heading a1
EMAILS - EMAIL B - Subject - heading b1
EMAILS - EMAIL C - Subject - heading c1
你真的只想內陣列即中第一次出現'標題a1',而不是所有的人即'標題a1'和'航向a2' – RiggsFolly