2013-05-23 2 views
0

JSON 형식의 데이터를 반환하는 API로 작업하고 있습니다. 응답의 예는 다음과 같습니다.Javascript - JSON에서 배열 읽기

{ 
    "code": 200, 
    "count": 4, 
    "currentPage": 1, 
    "date": "2013-05-24T09:19:37.964+1000", 
    "executedQuery": "cafe", 
    "message": "OK", 
    "originalQuery": "cafe", 
    "results": [{ 
      "aboutId": "b3ec5ac4096078f89fa4a9f3adcec930a1d4997c7cae30b026d61f8fcbf2013b", 
      "categories": [{ 
        "id": "35491", 
        "name": "Cafes", 
        "sensitive": false 
       }], 
      "detailsLink": "http://www.yellowpages.com.au/nsw/mt-colah/bobbin-inn-13830124-listing.html?referredBy=TAPI-jHOsyHrSfHBBlo0IExDjXZZJx6PszwX6", 
      "hasExposureProducts": false, 
      "id": "13830124", 
      "listingType": "Business", 
      "name": "Bobbin Inn", 
      "primaryAddress": { 
       "addressLine": "1 Chase Rd", 
       "geoCodeGranularity": "PROPERTY", 
       "latitude": "-33.678276", 
       "longitude": "151.112964", 
       "mappable": true, 
       "postcode": "2079", 
       "state": "NSW", 
       "suburb": "Mt Colah", 
       "type": "PHYSICAL" 
      }, 
      "primaryContacts": [{ 
        "type": "PHONE", 
        "value": "(02) 9457 7170" 
       }], 
      "pureMobileBusiness": false, 
… 

이 응답에는 많은 배열이 있습니다. 내가 만드는 방법 여기

에이 데이터를 구문 분석하지만 실패하고하는 것은, 내 코드 (이 내가 정의한이 분야에서 근무하지만 ... 아래 참조한다)이이 작동

for (var i in p) { 
    str += blocka + uibare + p.executedQuery + " (" + p.executedQuery+ ")</div></div>"; 
    str += blockb + uibarc + p.executedQuery + "</div></div>"; 
    str += blockc + uibare + p.executedQuery + "</div></div>"; 
    str += blockd + uibarc + p.executedQuery + "</div></div>"; 
    str += blocke + uibare + p.executedQuery + "</div></div>"; 
     } 

입니다 executedQuery 때문에 배열의 일부가 아닙니다. 그러나 결과 배열의 일부로 나타나는 "이름"예를 들어 싶다면? 아니면 내가 잘못 읽고 있니?

는 그래서
str += blockb + uibarc + p.results[i].name + "</div></div>"; 

을 시도하고 데이터를 당기지 것이다.

+0

이 JSON은 심지어 당신'을 console.log (존스)'당신의 JSON을 시도해 봤어 닫는 괄호 – aaronman

+0

이없는, 전혀 정확하지? 출력은 뭐야? 그것은 문자열인가 객체인가? JSON validator => http://jsonlint.com/ –

+0

그래서'p'가 무엇입니까? 문자열을 나타내는'JSON.parse'd 객체입니까? 왜 당신은'i' 속성을 사용하지 않습니까? – Bergi

답변

1

results은 키와 값의 단일 개체를 포함하는 배열입니다.

시도 result[0]["name"] 귀하의 요청에 더 적합

:

str += blockb + uibarc + p.results[0]["name"] + "</div></div>"; 
+0

API 사용자는 JSON에서 뱉어 내고 긍정적 인 점을 알았습니다. (발췌 부분은 있지만) – user2058234

+0

그리고 그냥 유효성을 검사했습니다. 유효한 JSON 응답이 있습니다 (URL을 사용할 때 '여기에 붙여 넣고 싶지만 내 개인 API 키가 있습니다.) – user2058234

+0

p는 제 기능이므로 $ .getJSON ("http://api.sensis.com.au/ob-20110511/test/search?key= & query = cafe & location = mountcolah & postcode = 2079 ", function (p) { – user2058234