查找项目是否存在于json中

时间:2018-12-30 05:54:48

标签: javascript arrays node.js json

我正在尝试使用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“}]

4 个答案:

答案 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');