Таким образом, я получил довольно далеко в своем стремлении заполнить значения и использовать JavaScript, но я немного застрял. Я уверен, что я ссылаюсь на все правильно, но моя таблица html ничего не выводит.AJAX/JSON Ссылка?
В основном я просто пытаюсь вставить значения из JSON, которые API извлекает, а затем вставлять эти значения в таблицу, используя двойной цикл for (loop loop) цикл, чтобы найти значения для каждого экземпляра), чтобы пройти через файл JSON, и в зависимости от этих значений, скажем, если значение выше 7, измените цвет.
Используя этот файл в формате JSON:
{
"product" : [ {
"name" : "TxP",
"id" : "TxP",
"measurement" : [ {
"id" : "222222",
"alias" : "Site Login",
"perf_data" : [ {
"name" : "last_five_minute",
"value" : "4.908",
"duration" : "300",
"unit" : "seconds"
}, {
"name" : "last_fifteen_minute",
"value" : "3.99",
"duration" : "900",
"unit" : "seconds"
} ],
"avail_data" : [ {
"name" : "last_five_minute",
"value" : "100",
"duration" : "300",
"unit" : "percent"
}, {
"name" : "last_fifteen_minute",
"value" : "100",
"duration" : "900",
"unit" : "percent"
}, {
...
.js файл:
var jsonData = new XMLHttpRequest();
var url = "---";
function changeColor(input, value){
if (value < 7) {
$(input).removeClass();
$(input).addClass('high');
}
}
jsonData.onload = funtion() {
if (jsonData.status === 200){
responseObject = JSON.parse(jsonData,responseText);
var newContent = '';
for (var i = 0; i < responseObject.perf_data.length; i++) {
if (measurement.id === '222222') {
for (var x = 0; x < responseObject.value.length; x++) {
newContent += '<td id = "part">'+changeColor(responseObject.value[x])
+'</td>';
}
document.getElementById('content').innerHTML = newContent;
}
}
}
};
jsonData.open("GET",url,true);
jsonData.send();
Мой вопрос в конечном счете сводится к тому, если я использую двойное право-цикл, чтобы пройти через JSON файл? Я чувствую, что вот где ошибка может быть, но похоже, что я ссылаюсь на адрес файла JSON прямо на кучу примеров, которые я видел с более простой ссылкой JSON ... Или это может быть что-то еще?
Спасибо в продвижении.
Вы ссылаетесь на объект, все неправильно. вы пропустили 'responseObject.product', который содержит массив. вы также никогда не определяли 'измерение'. –
Посмотрите на консоль JavaScript. Здесь вы должны увидеть ссылочную ошибку, потому что у вас есть опечатка. – Quentin
@Quentin: Спасибо ... Ничего себе, я не могу поверить, что пропустил это. – rezey