检查对象是否包含 jQuery / ajax 中的 X

Checking if object contains X in jQuery / ajax

我该如何检查 API 编辑的对象 return 是否包含 X?

这是我得到的最接近的,没有任何错误:

$.ajax(settings).done(function (response) {

var email_response = {response};         

if (Object.values((JSON.stringify(email_response))).indexOf('"response"') > -1) {
            console.log('Is valid');
         
         else (console.log('Not valid'));
});

在 运行 之后,它会产生来自 if else 函数的“无效”响应,即使文本“有效”出现在“有效”的 return 中将是预期的结果。

使用 console.log(JSON.stringify(email_response)); 进行字符串化,这是 return 从 API 编辑的内容:

{"response":{"address":"test@domain.com","status":"valid","sub_status":"role_based_catch_all","free_email":false,"did_you_mean":null,"account":"test","domain":"domain.com","domain_age_days":"10116","smtp_provider":"","mx_found":"true","mx_record":"mx.domain.com","firstname":null,"lastname":null,"gender":null,"country":null,"region":null,"city":null,"zipcode":null,"processed_at":"2022-03-12 12:41:38.306"}}

我也尝试过不对其进行字符串化,但这与上面解释的结果相同。

以下也看不到指定的文本:

    Object.keys(email_response).forEach(function(key) {
    if ((email_response)[key] == 'valid') {
        console.log('Is valid');}
        else (console.log('Not valid'));
    
    });

如果您想获取一些数据,则不必进行字符串化

$.ajax(settings).done(function (response) {

var status= response.status; // valid

//or 
console.log("status",response.status); // valid or undefined

 }); 

但如果出于某些原因您想创建一个新对象,请使用此代码

var email_response = {"response":response}; 

var status= email_response.response.status; // valid

valid 不是键,而是值。您需要像这样检查密钥 status

$.ajax(settings).done(function (response) {

    if (response.hasOwnProperty('status') && response.status === 'valid') {
        console.log('Is valid');
         
    } else {
        console.log('Not valid');
    }
});