Jquery Ajax 和 Json:如何检查是否未定义

Jquery Ajax and Json : How to check if undefined

本文关键字:检查 是否 未定义 何检查 Ajax Json Jquery      更新时间:2023-09-26

我得到了这个Jquery代码:

$.ajax({
    url: "?module=gestionApplication&action=getTests&scenario="+encodeURI(scenario)+"&application="+$application,
    dataType:'json',
    success: function( data ) {
        $.each(data, function(i, item) {
            $("#tests tbody").append($tr+"<td title='"+item.DESCRIPTION+"'>"+item.ID+"</td>" +
            "<td>"+
                "Header : "+item.HEADER + '<br/>' +
                "Méthode : "+item.METHODE +  '<br/>' +
                "PostBody : "+item.POSTBODY +  '<br/>' +
                "URL : "+item.URL +  '<br/>' +
                "ParseReponse : "+item.PARSEREPONSE +  '<br/>' +
            "</td>" +

所以我从我的服务器收到了 JSON 响应,但并非所有字段都已满。有时项目。标题或项目。无法定义 METHODE,因此我在表中得到"未定义"文本。问题是,我是法国人,我想要不同的文本,而不是这个"未定义"。

那么如何测试变量是否已定义呢?或者更好的是,在变量未定义的情况下,是否可以将此"未定义"文本更改为不同的文本?

您可以在 concat 中进行快速的条件/逻辑或检查:

"Header : " + (item.HEADER || '') + '<br/>' +

所以现在,如果item.HEADER undefined我们将遇到空字符串。当然,您也可以使用更具表现力的字符串,例如"empty"或其他什么。

if (typeof variable == "undefined")
{
    // variable is undefined
}

使用三元运算符...( 测试 ? 如果为真,则做 )

...+( item.HEADER ? item.HEADER : "something french" )+...

很容易做到,如下所示:

if (item.HEADER === undefined) {
    item.HEADER = 'indéfini';
}
// or 
if (typeof item.HEADER === 'undefined') {
    item.HEADER = 'indéfini';
}