2010-05-03 3 views
1

json/jQuery를 처음 접 하시면서 분명한 답변이 있으시면 죄송합니다. 요청이 지정된 개체가 데이터베이스에 있는지 여부를 묻는JQuery에서 String을 반환하는 JSON 요청을 처리하는 방법은 무엇입니까?

$.ajax({ 
     url: theURL, 
     dataType: 'jsonp', 
     type: 'get', 
     success: function(data) { 
      alert("it's there"); 
     } 
    }); 

:

내가 좋아하는 뭔가를의 jQuery를에 아약스 요청을하고 있어요. 객체가없는 경우

{ 
    "text": "duck", 
    "canonical_name": "duck", 
    "language": { 
     "id": "en" 
    }} 

그러나, 반환 : 마찬가지로

Not Found 

... 문자 그대로 정확한 문자열,하지의가 있다면, 그것은 형식의 무언가를 반환 내가 아는 한 모든 종류의 json 형식. 내가 이것을 탐지하기 위해 아약스를 얻을 수있는 방법이 있습니까? 지금은 후자의 경우에 아무 것도 없다는 것을 인정하는 것조차 보이지 않습니다.

json 코드는 저에게 쓰여지지 않았습니다. 이 형식이 올바르지 않거나 내 작업에서이 작업을 수행 할 수있는 방법이 전혀 없다면 문제가 해결 될 수 있지만 가능한 경우 해결 방법을 찾으려고합니다.

대단히 감사합니다.

success: function(data) { 
     alert("it's there"); 
     var myJSON = eval(data); 

    } 

지금 당신이 개체로 데이터를 얻을처럼 사용할 수 있습니다 : 당신이 제거를

myJSON.language.id 
+0

개체가 없으면 'Not Found'또는 HTTP 상태 404가 반환됩니까? –

+0

아니요 실제로 '찾을 수 없음'문자열을 반환합니다 ... 404 상태가 아닙니다. – knt

답변

0

당신은 데이터 유형 옵션 콜백을 제거 dataType 옵션이지만 성공 콜백의 데이터를 계속 파싱 할 수 있습니다. JSON.stringify()를 사용하거나 더 나은 : $ .parseJSON (data)을 사용하여 @Lowgain이 지적한 평가 단점을 피할 수 있습니다. 다음과 같이 끝낼 것입니다 :

success: function(data) { 
    var myJSON = $.parseJSON(data); 
} 
+1

이 문제는이 JSON이 신뢰할 수없는 소스에서 올 수있는 경우에 해당합니다.이 경우에는 eval()를 사용하지만 데이터를 안전하게 파싱하는 제 3 자 json 라이브러리가 필요합니다. 그러나 모든 정보가 어디에서 오는지 알면 문제가 없습니다! – Lowgain

0

@Aneesh 확실하지

관련 문제