javascript - 如何在 Electron renderer.js 文件中使用 Node.js 解析 JSON?

标签 javascript node.js json electron

我想从网络服务器解析 JSON 格式的数据集(在 Electron renderer.js 文件中编辑)

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,我对此感到困惑。这个结果表明它是一个字符串而不是一个数组。我想同时获取这些值和数组的长度。我应该怎么办?非常感谢。

最佳答案

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 变量中。

关于javascript - 如何在 Electron renderer.js 文件中使用 Node.js 解析 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54975281/

相关文章:

javascript - 我可以绕过 child ,让孙子成为 parent 吗? ReactJS

javascript - NodeJS 模块初始化

javascript - JS如何以编程方式创建断点

html - 为客户构建静态网站的最佳方式?

javascript - 如何使用 stripe.js 为新客户创建 token

c# - 未发送每个名称/值对时在 c# 中解析 json

javascript - 我可以使 javascript Image 对象具有交互性吗?

javascript - 无法在 Node.js 上使用 URL 模块,无法调用未定义的方法 'parse'

javascript - 对象长度不匹配

javascript - 基于来自 JSON 的图像数组设置图像样式