我正在尝试使用javascript检查字符串是否在JSON对象中。我不知道是否可能或我必须转换某些东西。下面是if语句的一部分,我想在其中检查data.userName(字符串)是否在用户(JSON对象)中
function validation() {
var userName_login = document.getElementById("username").value;
var password_login = document.getElementById("password").value;
var data = {
userName: userName_login,
password: password_login
};
doJSONRequest("GET", "/users/", null, data, function(users) {
if (data.userName) {
}
})
}
doJSONRequest函数是:
function doJSONRequest(method, url, headers, data, callback) {
if (arguments.length != 5) {
throw new Error('Illegal argument count');
}
doRequestChecks(method, true, data);
var r = new XMLHttpRequest();
r.open(method, url, true);
doRequestSetHeaders(r, method, headers);
r.onreadystatechange = function() {
if (r.readyState != 4 || (r.status != 200 && r.status != 201 && r.status != 204)) {
return;
} else {
if (isJSON(r.responseText))
callback(JSON.parse(r.responseText));
else
callback();
}
};
var dataToSend = null;
if (!("undefined" == typeof data) && !(data === null))
dataToSend = JSON.stringify(data);
r.send(dataToSend);
}
答案 0 :(得分:3)
function checkForValue(json, value) {
for (key in json) {
if (typeof (json[key]) === "object") {
return checkForValue(json[key], value);
} else if (json[key] === value) {
return true;
}
}
return false;
}
答案 1 :(得分:1)
尝试使用JSON.parse
解析它,如果解析成功,则返回 true ,否则返回 false :
function isJSON(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}