簡體   English   中英

如何在電子renderer.js文件中使用Node.js解析JSON?

[英]How can I parsing JSON with Node.js in electron renderer.js file?

我想從Web服務器解析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變量中。

這是因為info對象是一個字符串化對象,因此您需要對其進行解析和覆蓋,然后才能讀取整個數據對象。

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

希望對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM