我正在尝试使用nodejs请求在JSON代码中搜索ip。例如,如果127.0.0.1在JSON代码console.log('True')中 如果不是JSON代码控制台中的127.0.0.1,则Log('False) 我不知道我的代码有什么问题!
const request = require('request')
request('http://localhost/checkdir.php?ips=1', function(error, res, body) {
var ip = '127.0.0.1';
var ips = JSON.parse(body);
if(ips == ip.ip){
console.log('FOUND 1 MATCH IP ID IS'.ip.id);
}
})
http://localhost/checkdir.php?ips=1中的json代码
是[{“ id”:“ 21”,“ ip”:“ 127.0.0.1},{” id“:” 22“,” ip“:” 127.0.0.2“}]
答案 0 :(得分:3)
使用find
:
request('http://localhost/checkdir.php?ips=1', function(error, res, body) {
var ip = '127.0.0.1';
var ips = JSON.parse(body);
const match = ips.find(item => item.ip == ip);
if (match) {
console.log('FOUND 1 MATCH IP ID IS' + match.id);
}
})
答案 1 :(得分:1)
如果您有一系列项目,并且只想知道是否满足some
条件,则可以使用fromEnum
。它将返回一个布尔值,具体取决于是否满足条件:
let ips = [{"id":"21","ip":"127.0.0.1"},{"id":"22","ip":"127.0.0.2"}]
// true
console.log(ips.some(addr => addr.ip == "127.0.0.1"))
// false
console.log(ips.some(addr => addr.ip == "127.0.0.9"))
答案 2 :(得分:0)
您可以使用String search()方法:
const request = require('request')
request('http://localhost/checkdir.php?ips=1', function(error, res, body) {
var ip = '127.0.0.1';
var ips = JSON.parse(body);
var n = ips.search(ip);
if(n != -1){
console.log('FOUND 1 MATCH IP ID IS'.ip.id);
}
})
当没有匹配项时,该方法返回-1。更多信息here。
答案 3 :(得分:0)
尝试此代码。
var obj = [
{"id":"21","ip":"127.0.0.1"},
{"id":"22","ip":"127.0.0.2"}
];
var searchedIp = '127.0.0.1';
for (var i = 0; i < obj.length; i++){
if (obj[i].ip == searchedIp){
alert('true');
return;
}
}
alert('false');