wikipedia API를 사용하고 있습니다. 내 json 응답은 다음과 같습니다.
"{
"query": {
"normalized": [
{
"from": "bitcoin",
"to": "Bitcoin"
}
],
"pages": {
"28249265": {
"pageid": 28249265,
"ns": 0,
"title": "Bitcoin",
"extract": "<p><b>Bitcoin</b>isapeer-to-peerpaymentsystemintroducedasopensourcesoftwarein2009.Thedigitalcurrencycreatedandlikeacentralbank,
andthishasledtheUSTreasurytocallbitcoinadecentralizedcurrency....</p>"
}
}
}
}"
이 응답은 XMLHTTPObject ( request.responseText
) 내부에서 수신 됩니다.
eval을 사용하여 위의 문자열을 아래와 같이 json 객체로 변환하고 있습니다.
var jsonObject = eval('(' +req.responseText+ ')');
응답에서 페이지 요소는 위의 예 ( " 28249265
")에 표시된대로 키-값 쌍에 대한 동적 번호를 갖습니다.
내 pageId가 다른 결과에 대해 다른 경우 json 객체 위에서 추출 요소를 어떻게 얻을 수 있습니까?
여기서 파싱은 실제 문제가 아닙니다.
파싱하면 다음과 같이 추출 할 수 있습니다.
var data = jsonObject.query.pages.28249265.extract;
위의 28249265 라인에서 동적입니다. 이것은 다른 쿼리에 대해 다른 것입니다.
u가 "jsonObject.query.pages"의 모든 키를 순회한다고 가정합니다. 다음과 같이 추출 할 수 있습니다.
var pages = jsonObject.query.pages;
for (k in pages) { // here k represents the page no i.e. 28249265
var data = pages[k].extract;
// what u wana do with data here
}
또는 u는 먼저 모든 페이지 데이터를 배열로 추출 할 수 있습니다.
var datas = [];
var pages = jsonObject.query.pages;
for (k in pages) {
datas.push(pages[k].extract);
}
// what u wana do with data array here
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다