我正在执行一个返回 JSON 的 ajax 调用,其中包括 3 个位置邮政编码。
这些邮政编码是:
value2.loc1_zip
value2.loc2_zip
value2.loc3_zip
然后,“搜索”表单返回搜索半径内的邮政编码列表。这些是:
zipback.zip_codes
每个邮政编码都在这里:
zipback.zip_codes.zip_code
我不知道如何检查是否 value2.loc1_zip
, value2.loc2_zip
,或value2.loc3_zip
在 zipback.zip_codes
列表中
我已经尝试过这个,但没有成功:
var grabbed_zips = zipback.zip_codes;
if (grabbed_zips.hasOwnProperty(value2.loc2_zip)) {
...stuff...
}
这是原始 JSON:
{"counselor_posts":[{"id":"1","firstName":"John","lastName":"Doe","loc1_zip":"30309"},{"id":"3","firstName":"Jeff","lastName":"Kim","loc1_zip":"30315"}]}
{"zip_codes":[{"zip_code":"30324","distance":4.484},{"zip_code":"30376","distance":4.298}]}
这是我正在使用的实际 jquery:
$.ajax({
type: "GET",
url: '...url..here...',
dataType: "json",
success: function(zipback) {
var grabbed_zips = zipback.zip_codes;
$.getJSON('/scripts/get_counselor.php', function(data2) {
$.each(data2.counselor_posts, function(name2,value2) {
if (grabbed_zips.hasOwnProperty(value2.loc3_zip)) {
$(".counselor-search-results").append(cat_html2);
}
});
});
}
});
最佳答案
您是否使用 $.parseJSON 来实例化 JSON 对象? $.parseJSON
这将帮助您管理对象。如果对象是一个列表,则:
var JSONZips = $.parseJSON('{"zips" : {"user1zip":94140, "user2zip": 94107}}');
JSONZips.zips.hasOwnProperty('user1zip');
这将返回 true。
如果您需要查找特定值,则:
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;
}
希望这有帮助!
关于javascript - 检查 JSON 中是否存在值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21739609/