Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查一个JSON对象是否存在于另一个JSON对象中_Javascript_Html_Json - Fatal编程技术网

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

Javascript 如何检查一个JSON对象是否存在于另一个JSON对象中,javascript,html,json,Javascript,Html,Json,我在JSON(data.JSON)中有两组数据,如下所示: UP = [{"password": "jhonjhon", "username":"jhon"}, {"password": "juliejulie", "username":"julie"}, {"password": "blakeblake", "username":"blake"}]; 及 我有一个HTML表单,用户将使用该表单登录 <html> <body> <form name="m

我在JSON(data.JSON)中有两组数据,如下所示:

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

我有一个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>

非常感谢您对JavaScript的帮助

要按用户检查密码是否与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
          }
      }
   }
}
for(变量i=0;i

安全性



永远不要将密码放在用户可访问的位置,始终使用后端验证,始终对密码进行编码。你的方法非常不安全。我总是可以检查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;
            }
        }
}
函数finalCheck(){
var adminJSON=JSON.parse(Admins),//因为Admins是字符串,所以首先解析为JSON
length=adminJSON.length,
x=document.forms[“myForm”][“uid”]。值,
y=document.forms[“myForm”][“pwd”]。值,
adminFlag=false;
//查找管理员的for循环是否存在
对于(变量i=0;i
我想这个任务是为了学习。请不要在生产中这样做。您可以使用此示例代码。有很多更聪明的解决方案,但在我看来,这将有助于您了解基本知识

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');
       }
     }
   } 
 }
}
var UP=[{“密码”:“jhonjhon”,“用户名”:“jhon”},{“密码”:“julie”,“用户名”:“julie”},{“密码”:“blakeblake”,“用户名”:“blake”}];
var Admin=[{“Admin”:“jhon”},{“Admin”:“julie”}];
函数finalcheck()
{
变量x='jhon';
变量y='jhonjhon';
对于(变量i=0;i
SECURITY从不将密码放在用户可访问的位置,始终使用后端验证,始终对密码进行编码。你的方法非常不安全。我总是可以检查JSON源文件,看看我可以使用哪些登录名作为管理员登录。@justinas是的,我将对密码使用后端验证,但为了确保我对JSON有一个清晰的理解,我正在尝试这个示例。if(adminJSON[I]==x){应该是if(adminJSON[I]=x){这非常好!非常感谢你的帮助!干杯!:)@UtkarshYes,Danton说的是正确的。虽然我只是尝试了Utkarsh的建议就得到了相同的结果。为什么会发生这种情况呢?@Dantons我想不会很好。你能创建一个JSFIDLE并共享链接吗?好的,不,我只是交叉了检查过了,乌特卡什最初写的东西不起作用。你的建议是正确的@Danton谢谢你的帮助,乌特卡什!干杯!:)
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');
       }
     }
   } 
 }
}