我正在尝试在JSON格式的html页面中显示ping信息。 我有一些成就,但我不知道如何以有序的方式打印出来。
JS脚本
function scanner() {
var evilscan = require("evilscan");
var options = {
target: "10.0.0.161",
port: "21-23",
status: "TROU", // Timeout, Refused, Open, Unreachable
banner: true
};
var scanner = new evilscan(options);
scanner.on("result", function(data) {
// fired when item is matching options
console.log(data);
document.getElementById("pingStatus").innerHTML = JSON.stringify(
data,
undefined,
2
);
});
scanner.on("error", function(err) {
throw new Error(data.toString());
});
scanner.on("done", function() {
// finished !
});
scanner.run();
}
我从W3学校https://www.w3schools.com/js/tryit.asp?filename=tryjson_parse那里获得了一些启发
在HTML中添加了以下内容:
<p id="pingStatus" type="text"></p>
但是会显示一个类似于以下内容的JSON字符串:
{ "ip": "10.0.0.161", "port": 21, "banner": "", "status": "closed (timeout)" }
在HTML页面上处理和显示这样的字符串的最佳/通用方法是什么,以便显示如下:
示例
ect ..
答案 0 :(得分:3)
您可以使用forEach
循环并使用.textContent
属性设置该元素的innerHTML
var a = {
"ip": "10.0.0.161",
"port": 21,
"banner": "",
"status": "closed (timeout)"
};
var ele = document.getElementById("pingStatus");
Object.values(a).forEach(e => e!=''?ele.innerHTML += '<li>'+e+'</li>':false)
<p id="pingStatus" type="text"></p>
答案 1 :(得分:2)
您不应对数据进行JSON.stringify
,而应按原样使用data
。
添加更多html:
<p id="ip" type="text"></p>
<p id="port" type="text"></p>
<p id="pingStatus" type="text"></p>
按如下所示更改您的JavaScript:
scanner.on("result", function(data) {
// fired when item is matching options
console.log(data);
document.getElementById("ip").innerHTML = data.ip;
document.getElementById("port").innerHTML = data.port;
document.getElementById("pingStatus").innerHTML = data.status;
});
答案 2 :(得分:1)
这将为您提供帮助
for (x in data) {
txt += "<p>" + data[x]. ip + "</p>" + "<p>" + data[x]. port + "</p>";
}
答案 3 :(得分:1)
var txt = '{"name":"John", "address" : [{"c":"1"}], "age":30, "city":"New York"}';
document.getElementById("demo").innerHTML = "<pre>"+JSON.stringify(JSON.parse(txt),undefined, 2) +"</pre>";
<div id="demo" ></div>
我们可以使用json对象在带有'pre'标签的html上显示
var txt = '{"name":"John", "address" : [{"c":"1"}], "age":30, "city":"New York"}'
document.getElementById("demo").innerHTML = "<pre>"+JSON.stringify(JSON.parse(txt),undefined, 2) +"</pre>";