php - 错误未定义属性 : stdClass while trying to parse json file in php

标签 php json

我正在尝试解析 json 文件并使用 php 在表中显示其内容,但由于某种原因我得到了(注意:未定义的属性:z.json 中的 stdClass::$management_status)

这是我的 json 文件 (z.json) 中的完整示例:


{
    "metadata": {
        "total_record_count": "1"
    },
    "devices": [
        {
            "managed_status": "2",
            "device_id": "63225421111",
            "is_supervised": true,
            "os_version": "10",
            "is_lost_mode_enabled": false,
            "serial_number": "77898789",
            "device_type": "1",
            "owned_by": "1",
            "is_removed": "false",
            "product_name": "TC26",
            "device_name": "[email protected]",
            "platform_type": "android",
            "located_time": "1623936014747",
            "imei": [
                "352714110033545"
            ],
            "model": "TC26",
            "customer_name": "Customer1",
            "customer_id": "10489000000041017",
            "udid": "95bd2e6ca8654910",
            "last_contact_time": "1624254859593",
            "platform_type_id": "2",
            "user": {
                "user_email": "[email protected]",
                "user_id": "556654548",
                "user_name": "[email protected]"
            },
            "device_capacity": "17.34"
        }
    ],
    "delta-token": "aHR0cHM6Ly9tZG0ubWFuYWdlZW5naW5lLmV1L2FwaS92MS9kZXZpY2VzOjoxNjI0MjU1NzA2NDI4"
}

and here is my php script:

<?php
  $json=file_get_contents('z.json');
  $data=json_decode($json);

?>

<table>

    

      <tr>
        <td>managed_status</td>
        <td>device_id</td>
        <td>is_supervised</td>
        <td>os_version</td>
      </tr>
    
    
    
      <?php foreach($data as $key=>$item): ?>
        
        <tr>
          <td><?PHP echo $item->managed_status ; ?></td>
          <td><?PHP echo $item->device_id; ?></td>
          <td><?PHP echo $item->is_supervised; ?></td>
          <td><?PHP echo $item->os_version; ?></td>

        </tr>
        
      <?php endforeach; ?>

  </table>

最佳答案

在 foreach 条件中,您尝试迭代日期,需要将其替换为 $data->devices。

<?php

$json = file_get_contents('z.json');
$data = json_decode($json);

?>
<tr>
    <td>managed_status</td>
    <td>device_id</td>
    <td>is_supervised</td>
    <td>os_version</td>
</tr>

<?php foreach($data->devices as $key => $item): ?>

    <tr>
        <td><?php echo $item->managed_status ; ?></td>
        <td><?php echo $item->device_id; ?></td>
        <td><?php echo $item->is_supervised; ?></td>
        <td><?php echo $item->os_version; ?></td>
    </tr>

<?php endforeach; ?>

关于php - 错误未定义属性 : stdClass while trying to parse json file in php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68079622/

相关文章:

PHP 脚本利用 SQL 查询返回 false,即使数据库已更新

php - 脚本破坏了 MySQL 查询,但没有给出错误?

c# - 反序列化对象时出错

javascript - 代码不会验证

python - 为什么 Poloniex API 被验证码屏蔽?应为 JSON,但响应为 HTML

php - 将 PHP 变量包含到 CSS 中

php - 在 PHP 中查找多个字符串位置

JavaScript:解码 PHP json_encode 响应

ios - 使用 AFNetworking 从 Open Weather Map API 解析 JSON 天气对象

php - Laravel Factory - 在单列中生成具有随机迭代量的假 json 数组数据