2014-12-08 6 views
0

저는 AJAX 호출을 사용하여 API를 호출 한 다음 응답을 처리 할 준비가되었습니다. 문제는 단지 응답 객체 내부의 배열처럼 보이는 것을 액세스 할 수없는 것인데 왜 내 인생에서 그 이유를 알 수없는 것입니다. 그것은 단지 기본적인 행동이지만, 특정 응답 값을 직접 호출하여 콘솔에 기록하려고하면 정의되지 않은 것으로 표시됩니다.JAVascript에서 JSON 응답 변수에 액세스하는 데 문제가 있습니다.

{ 
    format: "small", 
    _links: { 
     self: { 
      href: "http://www-*******.net/v1/trading/exchange" 
     } 
}, 
    _embedded: { 
     exchangeData: [ 
       server: { 
        time: "10:01", 
        date: "08.12.2014" 
       }, 
       expert: { 
       quantity: "48,069", 
       country: { 
       .................. 

지금, 나는이 접근 할 수하고자하는 변수는 '전문가'개체의 '양'값입니다

여기 내 응답 객체입니다. 이것이 이것을 얻을 수있는 방법이라고 생각했습니다 :

response._embedded.exchangeData['expert'].quantity 

이 정확합니까? 그것은 어떤 가치도 돌려 보내지 않고 있으며 나는 이것이 보통 대수롭지 않은 일이라고 생각했습니다. THanks

+2

이는 유효한 JSON이 아닙니다. 누락 된 따옴표 (JS에서는 가능하지만 JSON에서는 유효하지 않음)를 무시하더라도 여전히 오류가 있습니다. http://jsonlint.com/을 사용하고 오류를 수정하십시오. – Quentin

+0

exchangeData는 배열입니다. 배열의 항목은 인덱스로 액세스 할 수 있습니다. 그러나 문제는 잘 형성된 배열이 아니라는 것입니다. 다시 포맷해야합니다. – genichm

답변

0

JSON 대괄호에서 []은 배열 용입니다. 예를 들어 과 같이 숫자 오프셋을 사용하여 액세스하는 ["a", "b", "c"]을 가질 수 있습니다. 같은 response.first와 같이 이름 속성을 참조하여 액세스 등 {"first": "a", "second": "b", "third": "c"} 등의 개체에 대한 (다른 언어로 테이블을 해시 유사)하다 {}

중괄호,,,.

표기법은 매우 간단합니다. see the specification here. 이 경우

, 당신은 읽을 JSON 소스를 수정해야합니다 : exchangeData 후 문자가 지금 중괄호가 아닌 일반 브라켓입니다

{ 
    "_embedded": { 
     "exchangeData": { 
      "server": { 
       "time": "10:01", 
       "date": "08.12.2014" 
      }, 
      "expert": { 
       "quantity": "48,069", 
       "country": { 

참고. 그런 다음 다음을 사용하여 액세스하십시오.

response._embedded.exchangeData.expert.quantity 
관련 문제