2012-01-18 2 views
0

빠른 질문 []로 JSON 데이터를 반환 할 때 수행 할 작업 :JSON - 일명 빈/널

좀 JSON 데이터를 반환하는 페이지를 호출하는 JQuery와 아약스를 사용하고 있습니다. 때로는 전체 데이터를 반환하고 때로는 비어있는 데이터를 []으로 반환합니다.

[] 또는 데이터가 비어있는 경우 스크립트가 다른 작업을 수행하도록하고 싶습니다. 그것은 데이터와 함께 반환하면 모든 일을 잘하고있다,하지만 일을 얻을 수없는 것처럼 그것이 빈 때 반환 [].

success: function (returndata){ 
     if (returndata === null) 
     { 
      $("#versionBox").remove(); 
     } 
else { 
     $.each(returndata, function() 
       { 
        var tag = this["name"]; 
        var linkname = "textdisplay.php?flag=<?php echo $fs; ?>&ed=" + tag; 
         $('#versionBox').append("<p><a href='" + linkname + "'>" + tag + "</a></p>"); 
       }); 

     } 

을하지만,이 스크립트의 첫 번째 부분이 작동하지 않기 때문에 []을 설명하는 올바른 방법이 될 null하지 않는 것 : 여기있는거야.

귀하의 조언에 감사드립니다.

답변

2

먼저 배열 Check if object is array?인지 확인한 다음 returndata.length == 0. 확인하십시오. 완료 & 완료했습니다!

if(Object.prototype.toString.call(returnData) === '[object Array]') { 
    if(returnData.length == 0) 
     alert('it is []'); 
} 

체크 내가 아는, 매우 만족하지 않습니다 ...

3

는 당신이 "빈"으로 인식하는 어떤 요소 배열입니다 "그것은 배열입니다." 배열은 이렇게하는 length 속성이 있습니다 :

if (returndata.length == 0) // "empty" return 

이 (그렇지 않으면 더 length이 없습니다 수 있으며 당신이 오류를 얻을 것이다) returndata이 모든 경우에 배열이라고 가정하지만, 귀하의 경우 그것은 참으로 보인다.

0
if (returndata){ 
    //if the return data has content 
} else { 
    //when it does not 
} 
관련 문제