将JSON输出打印到表中 - PHP

时间:2015-07-02 06:35:05

标签: php json api

我需要在表

中打印JSON输出
{
  "response_code":200,
  "pnr":"6642876935",
  "train_num":"12792",
  "train_name":"PNBE SC EXP",
  "doj":" 6- 7-2015",
  "from_station":
       {
         "code":"PNBE"
       },
  "to_station":
      {
         "code":"SC"
      },
  "reservation_upto":
      {
         "code":"SC"
       },
  "boarding_point":
       {
          "code":"PNBE"
       },
   "class":"SL",
   "no_of_passengers":"1",
   "chart_prepared":"N",
  "passengers":[
     { 
        "sr":"1",
        "booking_status":"W\/L   43,
        GNWL","current_status":
        "RAC   19"
     }
  ],
  "noms":1,
  "error":null
}

谢谢,

2 个答案:

答案 0 :(得分:1)

因为你的json有多个嵌套数组,你需要迭代它们。因此,如果我们使用其他foreach循环,我们检查我们的值是否为数组。

<?php
$json = '{"response_code":200,"pnr":"6642876935","train_num":"12792","train_name":"PNBE SC EXP    ","doj":" 6- 7-2015","from_station":{"code":"PNBE"},"to_station":{"code":"SC"},"reservation_upto":{"code":"SC"},"boarding_point":{"code":"PNBE"},"class":"SL","no_of_passengers":"1","chart_prepared":"N","passengers":[{"sr":"1","booking_status":"W\/L   43,GNWL","current_status":"RAC   19"}],"noms":1,"error":null}';
$data = json_decode($json, true);
?>

<table> 
      <tr>
            <td>Key</td>
            <td>Value</td>
            <td>Value</td>
      </tr>
      <?php foreach($data as $key => $value){ 

            if(is_array($value)){
                  foreach($value as $element){  
                        if(is_array($element)){
                              foreach($element as $key2 => $child){?>

                                    <tr>
                                          <td><?php echo $key; ?></td>
                                          <td><?php echo $key2; ?></td>
                                          <td><?php echo $child; ?></td>
                                    </tr>

                  <?php       }
                        } else { ?>

                  <tr>
                        <td><?php echo $key; ?></td>
                        <td><?php echo $element; ?></td>
                        <td></td>
                  </tr>

                  <?php }
                  }

            } else {   ?>

            <tr>
                  <td><?php echo $key; ?></td>
                  <td><?php echo $value; ?></td>
                  <td></td>
            </tr>

      <?php }
      } ?>
</table>

答案 1 :(得分:0)

<?php
$json = '{"response_code":200,"pnr":"6642876935","train_num":"12792","train_name":"PNBE SC EXP    ","doj":" 6- 7-2015","from_station":{"code":"PNBE"},"to_station":{"code":"SC"},"reservation_upto":{"code":"SC"},"boarding_point":{"code":"PNBE"},"class":"SL","no_of_passengers":"1","chart_prepared":"N","passengers":[{"sr":"1","booking_status":"W\/L   43,GNWL","current_status":"RAC   19"}],"noms":1,"error":null}';
$data = json_decode($json, true);
?>
<table>
    <tr>
        <td>Key</td>
        <td>Value</td>
    </tr>
    <?php foreach($data as $key => $value) : ?>
    <tr>
        <td><?= $key; ?></td>
        <td><?= $value; ?></td>
    <?php endforeach; ?>
</table>