如何遍历具有动态键(属性名)的PHP对象
大家好。我是PHP新手,在处理JSON数据时遇到了问题。使用`json_decode()`解码JSON后,我得到一个stdClass对象,其属性(键)是未知的。例如,我从外部API获取商品数据,字段名称可能会变化(价格、数量、描述——但确切字段组成未知)。我需要遍历该对象的所有属性并显示它们。
以下是我无法正常工作的示例代码:
```php
$json = '{"item1": {"name": "商品A", "price": 150}, "item2": {"name": "商品B", "price": 250}}';
$data = json_decode($json);
// 尝试像数组一样遍历——报错
foreach ($data as $key => $value) {
echo $key . ': ' . $value . '
'; } ``` 这段代码报错:"Invalid argument supplied for foreach()"。我知道`$data`是一个对象,而不是数组。但如果我不知道属性名称,该如何遍历它的所有属性?我试过使用`$data->$key`,也不起作用。
'; } ``` 这段代码报错:"Invalid argument supplied for foreach()"。我知道`$data`是一个对象,而不是数组。但如果我不知道属性名称,该如何遍历它的所有属性?我试过使用`$data->$key`,也不起作用。