2012-06-15 2 views
0

서버에서 JSON을 가져 와서 JSON 응답에 행이 지정된 경우 자바 스크립트 경고를 표시하는 앱을 작성하려고합니다. 내가 서버에서 얻는 JSON은 다음과 같습니다JSON 응답에 지정된 행이있는 경우 자바 스크립트 알림

{ 
    "key": [ 
     { 
      "IND": "406", 
      "NUMBER": "9", 
      "MESSAGE": "this is a test", 
      "status": "ok" 
     } 
    ] 
} 

을 그리고 이것은 내가 경고 표시하기 위해 사용하는 코드입니다 :

function UpdateRecord(update_id) { 
    var id = getUrlVars()["id"]; 
    jQuery.ajax({ 
     type: "POST", 
     url: serviceURL + "test.php", 
     data: 'id=' + id, 
     cache: false, 
     success: function(data) { 
      if (data.status == 'ok') { 
       alert(data.message); 
      } else { 
       alert("no"); 
      } 
     } 
    }); 
}​ 

을하지만이 코드 경고 "아니오"를 JSON은 행이 비록 "status": "ok"

답변

2

사용자 @

if(data.key[0].status == "ok") 
+0

그것은'data.key is undefined' 에러입니다. – user1323294

+0

은 정확히 위의 json입니까? console.log ()는 javascript를 브라우저 콘솔로 인쇄 할 때 디버깅하는 가장 좋은 방법입니다. 올바른 응답/변수를 얻으려면 다양한 지점을 인쇄해야합니다. JSON을 사용하면 변수 이름이 첫 번째 중괄호에 대한 링크가된다고 가정하면 각 레벨을 단계별로 실행하여 원하는 것을 얻을 수 있습니다. data = {key .....}, data.key = [{status ...}], data.key [0] = {status ....} 등 –

+0

예, 정확히 동일한 응답입니다. 나는 서버에서 얻는다. 나는'console.log (data)'를 사용하여이를 JSON 검사기에 붙여 넣었으며 유효한 JSON입니다. – user1323294

3

if (data.key[0].status)으로 시도하고 alert(data.message)alert(data.key[0].MESSAGE)으로 대체하십시오. 대문자 사용에주의해야합니다!

+1

하지를 sohould : 당신이 당신의 인용 JSON을 보면, data''생각 * 모든 것을 * 가리키는있다. 그러므로'status' 속성이'data.key [0] .status'에 있다는 Cyrille의 지적입니다. 그리고 모든 자바 스크립트 속성 이름은 대소 문자를 구별하므로'message'는'MESSAGE'와 일치하지 않습니다. –

0

성공 처리기에서 console.log(data)을 수행하여 데이터가 무엇인지 확인하십시오. data.status이 표시되지 않고 대신 data.key[0].status이 표시됩니다. 당신이 당신의 JSON에 정의 된 "키"를 가지고