У меня есть table.html , data.php и json.csv в одной папке.
data.php делает fopen("json.csv","r")
для чтения из json.csv .
Как я могу отображать объекты JSON в виде таблицы в table.html ?
<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>
Зак Хантер написал очень хороший учебник о том, как это сделать. Дайте ему вихрь:
http://www.zachhunter.com/2010/04/json-objects-to-html-table/
Вам просто нужен 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 не плоский и простой, что бы вы хотели, чтобы получившаяся таблица выглядела?
Здесь я взял данные 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
Вы можете использовать эту библиотеку для преобразования Json в стандартную HTML-таблицу: Json-To-Html-Table