Предполагая, что src/main/resources/json/movies.json
является документом на стороне сервера, вам может помочь следующий пример:
var testData = [{
"title": "The Shawshank Redemption",
"imdb-id": "tt0111161",
"rank": "1",
"rating": "9.216891492644972",
"rating-count": "2025250"
}];
$(function() {
function createTableFromJSON(jData) {
// Find Column Headers
var col = [];
$.each(jData[0], function(key, val) {
col.push(key);
});
// Create Table via jQuery Object
var table = $("<table>", {
class: "data-table"
});
// Append Header Row
table.append($("<tr>", {
class: "data-table-header-row"
}));
// Populate Header Cells
$.each(col, function(k, h) {
var th = $("<th>").html(h).appendTo($("tr:eq(0)", table));
});
// Append new Rows and Populate Cells
$.each(jData, function(i, r) {
var tr = $("<tr>", {
class: "data-table-row"
}).appendTo(table);
$.each(r, function(j, c) {
$("<td>").html(c).appendTo(tr);
});
});
// Return Table jQuery Object
return table;
}
// Bind Click Callback to Button
$("#create-table").click(function() {
/*
$.getJSON('./src/main/resources/json/movies.json', function(response){
$("#showData").html(createTableFromJSON(response));
});
*/
$("#showData").html(createTableFromJSON(testData));
});
});
th,
td,
p,
input {
font: 14px Verdana;
}
table,
th,
td {
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
}
th {
font-weight: bold;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="create-table" type="button" value="Create Table From JSON" />
<p id="showData"></p>
Я использовал testData
для тестирования. В комментариях вы увидите:
$.getJSON('./src/main/resources/json/movies.json', function(response){
$("#showData").html(createTableFromJSON(response));
});
Это ПОЛУЧИТ данные JSON и прочитает JSON в ответ переменной. Вы можете передать это непосредственно в вашу функцию и передать его в документ через .html()
.