Я пытаюсь перебрать объекты JSON с помощью jQuery в вызове AJAX, а затем распечатать объекты на html-странице.Я наткнулся на этот пост, посвященный стековому потоку, который показывает, как перебирать объекты json Который работал до определенного момента.
Я могу отобразить все значения из объекта с идентификатором ": 1, но у меня возникают проблемы при попытке отобразить больше значений после этого. Поэтому, например, я хотел бы отобразить значения, которые хранятся в"id": 2 и т. д.
Данные JSON генерируются программным обеспечением https://openhardwaremonitor.org.
Вот как выглядят данные JSON в короткой версии, а вот полная версия
{
"id": 0,
"Text": "Sensor",
"Min": "Min",
"Value": "Value",
"Max": "Max",
"ImageURL": "",
"Children": [
{
"id": 1,
"Text": "LAPTOP-4CG0QVS4",
"Min": "",
"Value": "",
"Max": "",
"ImageURL": "images_icon/computer.png",
"Children": [
{
"id": 2,
"Text": "ASUS FX504GM",
"Min": "",
"Value": "",
"Max": "",
"ImageURL": "images_icon/mainboard.png",
"Children": []
},
{
"id": 3,
"Text": "Intel Core i7-8750H",
"Min": "",
"Value": "",
"Max": "",
"ImageURL": "images_icon/cpu.png",
"Children": [
{
"id": 4,
"Text": "Clocks",
"Min": "",
"Value": "",
"Max": "",
"ImageURL": "images_icon/clock.png",
"Children": [
{
Вот код, который у меня в данный момент есть
<script>
var url = 'https://api.myjson.com/bins/sa41o';
$.ajax({
url: url,
method: 'GET',
}).done(function (result) {
var data = result.Children;
//console.log(result.Children.length);
var i = 0;
var hosData = "<table border='1'>";
hosData += "<tr>";
hosData += "<th>";
hosData += 'id';
hosData += "</th>";
hosData += "<th>";
hosData += 'Text';
hosData += "</th>";
hosData += "<th>";
hosData += 'Min';
hosData += "</th>";
hosData += "<th>";
hosData += 'Value';
hosData += "</th>";
hosData += "<th>";
hosData += 'Max';
hosData += "</th>";
hosData += "<th>";
hosData += 'ImageURL';
hosData += "</th>";
hosData += "</tr>";
for (i = 0; i < data.length; i++) {
hosData += "<tr>";
hosData += "<td>";
hosData += data[i].id;
hosData += "</td>";
hosData += "<td>";
hosData += data[i].Text;
hosData += "</td>";
hosData += "<td>";
hosData += data[i].Min;
hosData += "</td>";
hosData += "<td>";
hosData += data[i].Value;
hosData += "</td>";
hosData += "<td>";
hosData += data[i].Max;
hosData += "</td>";
hosData += "<td>";
hosData += data[i].ImageURL;
hosData += "</td>";
hosData += "</tr>";
}
hosData += "</table>";
$("#data").html(hosData);
}).fail(function (err) {
throw err;
});
<script
.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="data">
</div>
Я не могу завернуть свойОбойдите эту проблему.
var data = result.Children
возвращает длину как 1, что является проблемой, так как я ожидаю, что длина будет больше 1.