如何检查一个JSON对象是否存在于另一个JSON对象中
How to check for one JSON object being present in another
我有两组数据在一个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
列表。例如:如果x
是jhon
,我想知道在JSON的Admins
中是否存在相同的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');
}
}
}
}
}
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 如何为json对象中的段发送array[]
- 将JSON对象传递给angular指令
- 更改JSON对象的结构
- 访问JSON对象内部的数组元素
- 在ejs-partial中对JSON对象进行迭代
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 访问嵌套JSON对象的键,其中键是动态的
- json对象中缺少对象循环
- 发送json对象或使用express路由呈现视图
- 在play2框架中向json对象添加下拉列表项
- 元素名称上带有短划线 (-) 字符的 Json 对象
- autocomplete不接受源的json对象
- 如何在javascript中创建动态json对象
- 在使用客户端脚本时拾取JSON对象
- 如何通过json对象数组为嵌套对象赋值
- 构造JSON对象