将JSON值转换为HTML表

时间:2011-04-25 15:04:23

标签: php html json

我在同一个文件夹中有 table.html data.php json.csv

data.php 正在执行fopen("json.csv","r")来读取 json.csv

如何在 table.html

中将JSON对象显示为表格
<html>
<head>
<script type="text/javascript" src="jquery.js">
function display(){
 $.post('data.php',function(data){
 $("#txtJSON").html(data); 
 });
  }

  </script>
  </head>
  <body onload="display()">
  <table id="#jobtable">
  <input type="text" id="txtJSON" />
  </table>
  </body>
  </html>

3 个答案:

答案 0 :(得分:9)

您只需要json_decode和一些迭代

http://php.net/manual/en/function.json-decode.php

我将向您展示一种非常简单的PHP方法。你没有告诉JSON的任何内容,所以我假设它是扁平的(不是嵌套的)。我想你可能也想改变客户端的东西。将txtJSON变为空div,其中将填充PHP的输出。

$file = $fopen("json.csv", 'r');
$fileText = fread($file, filesize($file));
$arr = json_decode($fileText, true); //i prefer associative array in this context

echo "<table>";
foreach($arr as $k=>$v)
    echo "<tr><td>$k</td><td>$v</td></tr>";
echo "</table>";

如果您的JSON不平坦,那么您希望结果表看起来像什么?

答案 1 :(得分:2)

这里我将json数据带入$ json变量,然后使用foreach循环从json数据创建表。

foreach ($data as $key => $jsons) {
 $table ='<table class="'.$jsons['class'].'" border="1">';
 foreach ($jsons as $rkey => $rvalue) {
    if($rkey=='head')
    {
        $table.='<tr>';
        foreach($rvalue as $rvv)
        {
            $table.='<th>'.$rvv.'</th>';
        }
        $table.='</tr>';
    }else
    if($rkey=='rows')
    {
        foreach($rvalue as $rvv)
        {
            $table.='<tr>';
            foreach($rvv as $rv)
            {
                $table.='<td>'.$rv.'</td>';
            }
            $table.='</tr>';
        }
    }
 }
}
echo $table;
?>

我参考了http://www.tutsway.com/create-table-from-json.php

答案 2 :(得分:0)

您可以使用此库将Json转换为标准HTML表格:Json-To-Html-Table