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>";
을 시도하고 데이터를 당기지 것이다.
이 JSON은 심지어 당신'을 console.log (존스)'당신의 JSON을 시도해 봤어 닫는 괄호 – aaronman
이없는, 전혀 정확하지? 출력은 뭐야? 그것은 문자열인가 객체인가? JSON validator => http://jsonlint.com/ –
그래서'p'가 무엇입니까? 문자열을 나타내는'JSON.parse'd 객체입니까? 왜 당신은'i' 속성을 사용하지 않습니까? – Bergi