这将是非常简单的问题,但请让我知道我可以在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