我想从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);
});
});
答案 0 :(得分:0)
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
变量中。
答案 1 :(得分:0)
这是因为info对象是一个字符串化对象,因此您需要对其进行解析和覆盖,然后才能读取整个数据对象。
var info = JSON.parse(data.info);
data.info = info;
希望它能对您有所帮助。