如何检查一个JSON对象是否存在于另一个JSON对象中

How to check for one JSON object being present in another

本文关键字:JSON 对象 存在 是否 另一个 何检查 检查 一个      更新时间:2023-09-26

我有两组数据在一个JSON (data. JSON)如下:

UP = [{"password": "jhonjhon", "username":"jhon"}, {"password": "juliejulie", "username":"julie"}, {"password": "blakeblake", "username":"blake"}];

Admins = '[{"Admin":"jhon"}, {"Admin":"julie"}]';

我有一个HTML表单,用户将使用它来登录。

<html>
<body>
    <form name="myForm" onsubmit="finalCheck()">
        UserName<input type="text" id="uid" value="UserId"/>
        UserPassword<input type="password" id="pwd" value="UserPwd"/>
        <input type="submit"/>
    </form>
</body>
    <script src="data.json"></script>
    <script src="checking.js"></script>
</html>
在点击提交按钮时,我想首先检查用户名(存储在var中,说x)是否属于我的JSON文件中的Admins列表。例如:如果xjhon,我想知道在JSONAdmins中是否存在相同的jhon

JavaScript目前为:

function finalcheck(){
    var x = document.forms["myForm"]["uid"].value;
    var y = document.forms["myForm"]["pwd"].value;
}

JavaScript的帮助是非常感激!

要检查password是否与用户在JSON中相同,您必须循环JSON数组并检查值:

for (var i = 0; i < UP.length; i++) {
   if (UP[i].username == x && UP[i].password == y) {
      for (var j = 0; j < Admins.length; j++) {
          if (Admin[i].Admin == x) {
             //It's correct logins, do something
          }
      }
   }
}


永远不要把密码放在用户可访问的位置,始终使用后端验证,始终编码您的密码。你的做法非常非常不安全。我总是可以检查JSON源文件,看看我可以把登录作为admin

您应该遍历JSON对象并检查uid是否存在。

如果Admins中存在x,则adminFlag将设置为true。

试试下面给出的代码:

function finalCheck(){
    var adminJSON = JSON.parse(Admins), // since Admins is string, parse to Json first
        length = adminJSON.length,
        x = document.forms["myForm"]["uid"].value,
        y = document.forms["myForm"]["pwd"].value,
        adminFlag = false;
        // for loop to find admin is present or not
        for(var i = 0; i < length; i++){
            if(adminJSON[i].Admin == x){
               adminFlag = true;
               break;
            }
        }
}

我想这个任务是为了学习。请不要在生产环境中这样做。您可以使用这个示例代码。有很多更聪明的解决方案,但在我看来,这将有助于您了解基本知识。

var UP = [{"password": "jhonjhon", "username":"jhon"}, {"password": "juliejulie", "username":"julie"}, {"password": "blakeblake", "username":"blake"}];
var ADMINS = [{"Admin":"jhon"}, {"Admin":"julie"}];
function finalcheck()
{
 var x = 'jhon';
 var y = 'jhonjhon';
 for(var i = 0; i < UP.length; i++)
 {
   if (UP[i].password == x && UP[i].username == y)
   {
     console.log(y + ' has access!');
     for (var j = 0; j < ADMINS.length; j++) {
       if (ADMINS[j].Admin == y)
       {
         console.log(y + ' is Admin');
       }
     }
   } 
 }
}