! РЕШЕНО! Как я могу распечатать таблицу из файла. json в JavaScript с помощью xmlHttpRequest - PullRequest
1 голос
/ 28 мая 2020

[EDIT] Полный и правильный код @ https://repl.it/@aleemont / XMLPersone

Мне нужно прочитать файл JSON и поместить всю информацию, которую он содержит в таблице. Я пытаюсь сделать это с помощью XMLHttpRequest. Мой учитель привел мне пример, но я не смог его правильно понять. Вот код, который я написал:

var ppl = new Array();

function load(){
    var xmlhttp = new XMLHttpRequest();
    var url = "data.txt";

    xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState == 4){
            if(xmlhttp.status == 200){
                ppl = JSON.parse(xmlhttp.responseText);
                print();
            }
            else
                document.getElementById("error").innerHTML = "ERROR";
        }
    }
    xmlhttp.open("GET", url, true);
    xmlhttp.send();
}

function print(){
    /*here is where i should create the table
     where to put the content of data.txt*/
}




Это код, который дал мне мой учитель, но я не понимаю, что делают эти методы. Он также использует другой файл JSON, но я думаю, это не имеет значения.

function print(){
    var ncol=0;
    for (key in pc)
      ncol++;
    var tit = document.getElementsByTagName("title");
    var txt = tit[0].childNodes[0];
    var tab = document.getElementById("computer");
    tab.innerHTML="";
    var table = document.createElement("TABLE");

    var title = document.createElement("TR");
    var ele = document.createElement("TH");
    ele.colSpan = ncol;
    ele.appendChild(txt);    
    title.appendChild(ele);
    table.appendChild(title);

    var heading = document.createElement("TR");
    for (var x in pc[0])
    {
        txt = document.createTextNode(x);
        ele = document.createElement("TH");
        ele.appendChild(txt);
        heading.appendChild(ele);
    }
    table.appendChild(heading);
    for (var i in pc)
      {
          var row = document.createElement("TR");
      for (var x in pc[i])
      {
          if (x=="Storage")
               txt = document.createTextNode(storage[pc[i][x]]);
               else
                   txt = document.createTextNode(pc[i][x]);
               ele = document.createElement("TD");
        ele.appendChild(txt);
        riga.appendChild(ele);
      }
      table.appendChild(riga);
      }
      tab.appendChild(table);
  }

1 Ответ

1 голос
/ 28 мая 2020

ppl = JSON .parse (xmlhttp.statusText);

Вам необходимо разобрать текст ответа на JSON. Вместо этого используйте ppl = JSON.parse(xmlhttp.responseText);. То же самое и в ответе, который вы опубликовали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...