2016-11-21 10 views
0

이 JSON 파일 (아래 구조체)을 반복하고 예를 들어 국가가 오스트리아 인 모든 호텔을 가져와야합니다. getJson()을 사용하면 JSON 파일에서도 아무 것도 변경할 수 없습니다.JSON 객체를 통한 jQuery 루프

도움을 주시면 감사하겠습니다.

[ 
    { 
    "Site ID": 19955, 
    "Hotels": "Ramada Salzburg City Centre", 
    "Stadt": "Salzburg", 
    "Country": "Austria", 
    "Region": "Central & Eastern Europe", 
    "Link DE": "", 
    "Link EN": "", 
    "Link TR": "", 
    "Lat": 47.8137521, 
    "Long": 13.044259, 
    "Image": "/Salzburg.jpg" 
    }, { 
    "Site ID": 1211, 
    "Hotels": "test", 
    "Stadt": "Salzburg", 
    "Country": "NZ", 
    "Region": "Central & Eastern Europe", 
    "Link DE": "", 
    "Link EN": "", 
    "Link TR": "", 
    "Lat": 47.8137521, 
    "Long": 13.044259, 
    "Image": "/Salzburg.jpg" 
    } 
] 
+0

어떤 코드 지금까지 –

+0

당신 foreach는에게 –

+0

var에 JSON = "URL"를 사용할 수 있습니까; $ .getJSON JSON (함수 JSON() {위한 (VAR I에서 JSON) { 경우 (json.hasOwnProperty ("국제")) { VAR X = json.Country.Hotels; }} document.write (x); – user3770540

답변

2

나는 당신이 원하는 정확히 알고 있지만, 여기에 JSON과 호텔 오스트리아에있는 경우 검사를 루프 콘솔에 이름과 도시 기록 작업 예제하지 않습니다

var json = [{ 
    "Site ID": 19955, 
    "Hotels": "Ramada Salzburg City Centre", 
    "Stadt": "Salzburg", 
    "Country": "Austria", 
    "Region": "Central & Eastern Europe", 
    "Link DE": "", 
    "Link EN": "", 
    "Link TR": "", 
    "Lat": 47.8137521, 
    "Long": 13.044259, 
    "Image": "/Salzburg.jpg" 
}, { 
    "Site ID": 1211, 
    "Hotels": "test", 
    "Stadt": "Salzburg", 
    "Country": "NZ", 
    "Region": "Central & Eastern Europe", 
    "Link DE": "", 
    "Link EN": "", 
    "Link TR": "", 
    "Lat": 47.8137521, 
    "Long": 13.044259, 
    "Image": "/Salzburg.jpg" 
}]; 

$(json).each(function() { 
    if (this.Country === "Austria") { 
    console.log("Found hotel " + this.Hotels + " in " + this.Stadt); 
    } 
}); 
+0

"==="대신 "==="을 사용 하시겠습니까? 임시 투표를 넣으십시오. 편집 후 되돌릴 것입니다. – Adrian

+0

예! 외부 json 파일을 다음과 같이 주입해야합니다. 변수이지만 작동 했음 – user3770540

+0

사실,이 경우에는 ID 연산자에 대한 평등의 선호가 없습니다. "좋은"것을 사용하기 위해 소스를 편집했습니다 : P –

-1

위치를 저장하고 루프를 반복하고 일치하는 위치를 새로운 배열로 그룹화해야합니다.

var locations = [{ 
    "Site ID": 19955, 
    "Hotels": "Ramada Salzburg City Centre", 
    "Stadt": "Salzburg", 
    "Country": "Austria", 
    "Region": "Central & Eastern Europe", 
    "Link DE": "", 
    "Link EN": "", 
    "Link TR": "", 
    "Lat": 47.8137521, 
    "Long": 13.044259, 
    "Image": "/Salzburg.jpg" 
}, { 
    "Site ID": 1211, 
    "Hotels": "test", 
    "Stadt": "Salzburg", 
    "Country": "NZ", 
    "Region": "Central & Eastern Europe", 
    "Link DE": "", 
    "Link EN": "", 
    "Link TR": "", 
    "Lat": 47.8137521, 
    "Long": 13.044259, 
    "Image": "/Salzburg.jpg" 
}]; 

// Store the matched hotels here 
var matches = []; 

// Loop over hotels 
for(i=0; i<locations.length; i++) { 

    // Check if the location is in Austria, if so push it to our matches array 
    if(locations[i].Country == 'Austria') { 
     matches.push(locations[i]); 
    } 
} 

// Check for matched hotels 
console.log(matches); 
+0

내가 믿는 두 가지 점은 나쁜 습관으로 간주됩니다. 먼저 루프의 전역 네임 스페이스에서 암시 적으로 "i"를 선언합니다. 둘째로 "=="대신 "==="를 사용하여 "국가"값을 확인합니다. 편집 한 후 임시 투표를하면 반대표가 표시됩니다. – Adrian

+0

내 대답을 편집하지는 않겠지 만, 네임 스페이스는 문제가 아니므로 엄격한 자체 비교 예제이므로 엄격한 비교는 두 문자열을 비교하는 최상의 방법으로 간주되지 않습니다. https://github.com/getify/You-Dont-Know-JS/blob/master/up%20&%20going/ch2.md#equality를 읽어 보면 어느 값이 예상되지 않는 한 false "또는 ==를 사용하는 빈 배열은"안전 할뿐만 아니라 대부분의 경우 코드를 가독성을 향상시키는 방식으로 단순화합니다. " –

+0

이전에이 글을 읽었지만 "==="는이 코드가이 제한된 범위 밖에서 적용되면 더욱 중요한 유형과 값의 동일성을 기대한다는 점에서 "=="보다 훨씬 더 많이 말합니다. 현실적인 크기의 응용 프로그램에서 오용 될 경우 "=="및 "! ="주위에 전 세계의 버그가 있습니다. 나는 우리가 동의하지 않으면 안된다고 생각한다. – Adrian

0

시도 어레이 map()filter() 방법 :

var json = [{ 
 
    "Site ID": 19955, 
 
    "Hotels": "Ramada Salzburg City Centre", 
 
    "Stadt": "Salzburg", 
 
    "Country": "Austria", 
 
    "Region": "Central & Eastern Europe", 
 
    "Link DE": "", 
 
    "Link EN": "", 
 
    "Link TR": "", 
 
    "Lat": 47.8137521, 
 
    "Long": 13.044259, 
 
    "Image": "/Salzburg.jpg" 
 
}, { 
 
    "Site ID": 1211, 
 
    "Hotels": "test", 
 
    "Stadt": "Salzburg", 
 
    "Country": "NZ", 
 
    "Region": "Central & Eastern Europe", 
 
    "Link DE": "", 
 
    "Link EN": "", 
 
    "Link TR": "", 
 
    "Lat": 47.8137521, 
 
    "Long": 13.044259, 
 
    "Image": "/Salzburg.jpg" 
 
}]; 
 

 
var austriaHotels = json.filter(function(item) { 
 
    return item.Country == 'Austria'; 
 
}); 
 

 
var hotelsName = austriaHotels.map(function(item) { 
 
    return item.Hotels; 
 
}); 
 

 
console.log(hotelsName);