2012-01-30 2 views
-1

JSON을 반환하는 Ajax를 만들고 있습니다. 반환 된 JSON을 Firebug에서 확인하고 JSLint에 대해 확인했지만 콘텐츠를 추출 할 수 없습니다. Heres는 내가보고있는 무슨 : myVar에 [개체 개체] 당신의 예에서javascript undefined value

+2

무엇이'load'를 호출하고,'data'는 무엇을 기대합니까,'data.shipments'는 무엇입니까? * 귀하의 질문은 무엇입니까? – Hamish

+0

안녕하세요 Hamish,로드는 ajax 요청을 요청하고 데이터 유형은 application/json에서 반환되며 데이터 스 니펫도 게시했습니다. – user1052591

+0

jQuery를 사용하고 있습니까? – Jivings

답변

1

결과 위

Data: {"shipments":[{"companyName":"GLOBAL SOL INC.", so on...........}]}

load: function(data){ 
    console.log("responseText " + data.responseText); 

**Above results in: responseText undefined** 

    var myVar = data.shipments; 

    console.log("myVar " + myVar); 

는 myVar에 개체를 포함하는 배열을 의미한다. companyName 값을 얻으려면 data.shipments[0].companyName 또는 myVar[0].companyName을 사용하십시오.

0

응답이 정상적으로 작동하는 것처럼 보입니다.

console.log(data) 또는 console.log(myVar)을 시도해보십시오. String을 사용하지 않고 console을 호출하면 객체의 내용이 표시됩니다 (적어도 Chrome에서는).

그러면 물어볼 요소의 요소를 말할 수 있습니다. JSON 형식 문제 일 가능성이 높지만 질문에서 알기가 어렵습니다.

0

응답에 "responseText" 속성이 포함되어 있습니까? 이 정의되지 않은으로 data.responseTextundefined을 할 수 있도록

{"shipments": [...], "responseText": ..., ...} 

하지 않으면, 그것은 의미가 있습니다.

XMLHttpRequest 개체에서 responseText을 찾으려면 load 함수와 다른 인수가 될 것입니다. 어떤 인수는 함수를 호출하는 스크립트 (특정 라이브러리 또는 집에서 만든 것)에 따라 다릅니다.

"[Object object]"의 경우 Object에 대한 기본값은 toString입니다. 다시 JSON 표현을 원하는 경우, JSON.stringify(...)를 사용

console.log("myVar " + JSON.stringify(myVar)); 

또는 대부분의 브라우저 콘솔 객체를 검색 할 수있는 기능을 제공합니다. 이것을 사용하려면 그냥 별도의 인수로 전달하십시오 :

console.log("myVar", myVar);