【发布时间】:2019-04-20 15:23:57
【问题描述】:
我正在尝试使用 PHP 解析 JSON,然后打印父属性的名称,后跟项目。
这是 JSON
{
"Specials": [{
"name": "Shirt","dsc":"cotton shirt",
"vari": [{ "name":"red", "price":25.80 },{ "name":"green", "price":26.50 }]
},
{
"name":"shorts","dsc":"one size","price":15.99
},
{
"name":"shoes","dsc":"black shoes",
"vari": [{ "name":"capri", "price":37.80 },{ "name":"shooters", "price":28.50 }]
}],
"Jumpers": [{
"name": "Glax Red","dsc":"thin lightweight","price":22.99
},
{
"name": "Bazoo Care","dsc":"ideal for winter","price":32.99
}]
}
我使用以下方法对其进行了迭代:
$readjson = file_get_contents('products.json') ;
$data = json_decode($readjson);
foreach ($data as $products) {
foreach ($products as $product) {
echo $product->name."<br>".$product->dsc."<br>";
if (isset($product->price))
{
echo " ".$product->price."<br>";
}
else {
foreach ($product->vari as $var) {
echo $var->name." ".$var->price."<br/>";
}
}
输出是:
衬衫 棉衬衫 红色 25.8 绿色 26.5 短裤 一个尺寸 15.99 ...
我想先打印属性的名称,然后显示其中的项目,它应该如下所示:
特价
衬衫 棉衬衫 红色 25.8 绿色 26.5
短裤 一个尺寸 15.99 ...
跳线
葛兰素红 轻薄 22.99
巴祖护理 非常适合冬天 32.99
我已将其添加为外部嵌套循环:
foreach ($data as $products => $value) {
echo $products;}
但这只会返回第一个对象名称。我怎样才能实现上述目标?
这是 JSON 的可视化。
【问题讨论】: