PHP-如何循环使用以“开始”开头的字段的JSON数组$&引用;
我一直在尝试如何循环并输出字段名以“$”开头的json文件的内容,并不断得到一个未定义的变量错误消息 下面是一个json文件示例(摘自): 我正在用一个静态字符串进行测试,只是想让它工作起来。这是我的测试代码PHP-如何循环使用以“开始”开头的字段的JSON数组$&引用;,php,json,Php,Json,我一直在尝试如何循环并输出字段名以“$”开头的json文件的内容,并不断得到一个未定义的变量错误消息 下面是一个json文件示例(摘自): 我正在用一个静态字符串进行测试,只是想让它工作起来。这是我的测试代码 <?php $input = '[{"$distinct_id":"13b20239a29335","$properties":"dddd"}]'; $jsonObj = json_decode($input, true); foreach ($jsonO
<?php
$input = '[{"$distinct_id":"13b20239a29335","$properties":"dddd"}]';
$jsonObj = json_decode($input, true);
foreach ($jsonObj as $item) {
foreach ($item as $rec) {
echo '<br>';
$my_id = $rec->$distinct_id;
echo($my_id);
$my_id = $rec->$properties;
echo($my_id);
}
echo '<br>';
}
?>
任何帮助都将不胜感激
诺布
更新:Musa给出了一个适用于单级json的示例:
foreach($jsonObj作为$item){
echo'
';
$my_id=$item->{'$distinct_id'};
echo($my_id);
$my_id=$item->{'$properties'};
echo($my_id);
回声“
”;
}
然后,如何将其调整为读取和输出更大的多级json文件的所有元素?使用花括号表示法
$object->{'$property'};
编辑
foreach($jsonObj作为$item){
回声“
”;
$my_id=$item->{'$distinct_id'};
echo($my_id);
foreach($item->{'$properties'}作为$my_prop=>$value){
echo($my_prop=>$value”);
}
回声“
”;
}
使用嵌套循环,您正在迭代属性$distinct\u id
和$properties
,因此$rec
实际上是一个字符串而不是一个对象
此外,您的json无效,因为它在
$properties
字段中有尾随,
。感谢您的Musa。非常感谢。然后,我如何循环使用主json文件中的深层元素?
echo '<br>';
$my_id = $item->{'$distinct_id'};
echo($my_id);
$my_id = $item->{'$properties'};
echo($my_id);
echo '<br>';
$object->{'$property'};
foreach ($jsonObj as $item) {
echo '<br>';
$my_id = $item->{'$distinct_id'};
echo($my_id);
foreach ($item->{'$properties'} as $my_prop => $value){
echo("$my_prop => $value");
}
echo '<br>';
}