Как создать html-таблицу из простого json-файла

#jquery

#jquery

Вопрос:

У меня в Json есть массив полей типа

 [
    {
        "id": 1,
        "name": "test",
        "last_name": "test",
    },
    {
        "id": 2,
        "name": "test1",
        "last_name": "test1",
    },
    {
        "id": 2,
        "name": "test2",
        "last_name": "test2",
    }
]
  

Как создать HTML-таблицу с помощью jquery со столбцами id, name, last name?

Ответ №1:

 var json = [Your JSON here];
var $table = $('<table/>');

$.each(json, function(index, value) {
   //create a row
   var $row = $('<tr/>');

   //create the id column
   $('<td/>').text(value.id).appendTo($row);

   //create name column
   $('<td/>').text(value.name).appendTo($row);

   //create last_name
   $('<td/>').text(value.last_name).appendTo($row);

   $table.append($row);
});

//append table to the body
$('body').append($table);
  

Обратите внимание, что при этом не создается строка заголовка, но вы можете легко сделать это тем же способом.

Редактировать: на самом деле jQuery здесь не нужен:

 var json = [Your JSON here],
    table = document.createElement('table');

for(var i = 0, il = json.length; i < il;   i) {
    //create row
    var row = document.createElement('tr'),
        td;

    //create the id column
    td = document.createElement('td');
    td.appendChild(document.createTextNode(json[i].id));
    row.appendChild(td);

    //create name column
    td = document.createElement('td');
    td.appendChild(document.createTextNode(json[i].name));
    row.appendChild(td);

    //create last_name column
    td = document.createElement('td');
    td.appendChild(document.createTextNode(json[i].last_name));
    row.appendChild(td);

    table.appendChild(row);
}

document.body.appendChild(table);
  

Очевидно, что вы можете немного подчистить это, чтобы было более СУХО, но вы поняли идею.

Ответ №2:

Для этого вы можете использовать плагин jQuery templates. Вот исходный код, и вот документация.

Комментарии:

1. Примечание: Команда jQuery решила не запускать этот плагин после бета-тестирования. Он больше не разрабатывается и не поддерживается.

Ответ №3:

     my $json;
{
  local $/; #Enable 'slurp' mode
  open my $fh, "<", "C:/path_to_json_file/data.json";
  $json = <$fh>;
  close $fh;
}
my $data = decode_json($json);
my $array = $data->{'employees'};
print"<table cellpadding='0' cellspacing='0' border='0' class='pretty' id='example' >
    <thead>
         <tr>
        <th>SNo.</th>
        <th>Row1</th>
        <th>Row2</th>
        </tr>
    </thead>
    <tbody>";
foreach my $item (@$array){
    print "<tr>";
    print "<td>" . $item->{'SNo'} . "</td>";
    print "<td>" . $item->{'Row1'} . "</td>";
    print "<td>" . $item->{'Row2'} . "</td>";
    </tr>";
}
print "</tbody></table>
  

это простая cgi-программа на perl, которая создаст html-таблицу из файла JSON. вы можете увидеть полную программу на http://www.ssiddique.info/creating-html-table-using-json-file.html