Как я могу проанализировать JSON с Node.js в электронном файле renderer.js? - PullRequest
0 голосов
/ 04 марта 2019

Я хочу проанализировать набор данных в формате JSON с веб-сервера (редактировать в файле Electron renderer.js)

image

refresh.addEventListener("click", function(){
  const http = require('http');
  http.get(
    'http://teamparamount.cn:8080/Paramount/filesroot?username=test', (resp) =>{
      let data = '';
      // A chunk of data has been recieved.
      resp.on('data', (chunk) =>{
        data += chunk;
      });
      // The whole response has been received. Print out the result.
      resp.on('end', () =>{
        // console.log(JSON.parse(data).info);
        // var obj = JSON.stringify(data);
        var hhh = JSON.parse(data);
        var xxx = JSON.parse(data).info;
        // alert(typeof obj);
        // console.log(hhh.length);
        // console.log(obj);
        console.log(data);
        console.log(hhh.status);
        console.log(hhh.info);
        console.log(hhh.info[1].time);
        console.log(hhh.info.length);
        console.log(hhh.info[408]);


        // console.log(obj.info[1]);

        // console.log(obj.status);
        // console.log(obj.status.length);
        function getJsonLth(obj){
          var index = 0;
          for(var i=0;i<obj.length;i++){
            if (obj[i] == ':') {
              index++;
            }
            return index;
            // alert(json1.abc[i].name);
          }
        };
        console.log(getJsonLth(xxx));
      });
    }).on("error", (err) => {
      console.log("Error: " + err.message);
    });
});
В красной части круга первым выводом является набор данных в формате JSON, который отправил сервер.Второй вывод является результатом после использования JSON.parse (data) .status .Третий вывод - это результат использования JSON.parse (data) .info.И я думаю, что var xxx = JSON.parse (data) .info xxx - это массив, как показано в третьем выводе.Однако я хочу получить размер, время, тип, URL-адрес этих значений отдельно в каждом элементе массива.Но, как вы можете видеть, вывод console.log (hhh.info [1] .time); не определен.Кроме того, я хочу получить длину этого массива, и я просто использую console.log (hhh.info.length) , и результат равен 409, и я запутался в этом.Этот результат уточняет, что это строка, а не массив.И я хотел бы получить эти значения и длину массива одновременно.Что я должен делать?Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

это потому, что информационный объект является строковым объектом, поэтому вам нужно проанализировать его и переопределить, и после того, как вы сможете прочитать весь объект данных.

var info = JSON.parse(data.info);
data.info = info;

Надеюсь, это поможетвы.

0 голосов
/ 04 марта 2019

http://teamparamount.cn:8080/Paramount/filesroot?username=test возвращает это:

{"status":"success","info":"[{\"size\":\"10105\"...

, где info свойство - строка, которая должна анализироваться отдельно.Это то, что вы явно пытаетесь сделать в:

var xxx = JSON.parse(data).info;

Но вместо JSON.parse(data).info вы должны сделать: JSON.parse(data.info).Затем вы получите массив info в переменную xxx.

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