如何通过PHP中的此JSON字符串循环并获取所有URLS?PHP通过POST请求循环JSON字符串
{
"item": "1.2.840.113619.2.55.1.1762903756.1942.1319006898.442",
"title": [{
"images": "{'1.2.840.113619.2.55.1.1762903756.1942.1319006898.446.1':{'url': 'https:www.example11.com', 'observationTime': 'None'}}"
},
{
"images": "{'1.2.840.113619.2.55.1.1762903756.1942.1319006898.446.1':{'url': 'https:www.example33.com', 'observationTime': 'None'}, '1.2.840.113619.2.55.1.1762903756.1942.1319006898.446.55':{'url': 'https:www.example44.com', 'observationTime': 'None'}, '1.2.840.113619.2.55.1.1762903756.1942.1319006898.446.99':{'url': 'https:www.example55.com', 'observationTime': 'None'}}"
},
{
"images": "{'1.2.840.113619.2.55.1.1762903756.1942.1319006898.446.1':{'url': 'https:www.example66.com', 'observationTime': 'None'}}"
}
]
}
尝试了以下内容,并没有为你的工作有所帮助
$data=json_decode ($stringBody,TRUE);
for($i=0; $i<count($data['title']); $i++) {
$data=$data['title'];
foreach($data as $obj){
$imagesData =$obj['images'];
foreach($imagesData as $value){
print "<p>" . $value->url . "</p>";
}
}
}
感谢。
你应该在循环变量使用不同的名称;不要覆盖'$ data'。还要注意,你不需要循环中的循环,1应该这样做。 – jeroen
因为你已经在json解码中传递了true,它将转换为递归多维数组..所以使用'$ value ['url']'而不是'$ value-> url' –
@jeroen谢谢,试过你的建议,它没有没有工作。 foreach($ imagesData as $ value){ print“
”。 $ value-> url。 “
”; }永远不会被调用 –