2016-08-09 5 views
0

나는 firebase 링크로 배열을 가져와야합니다. //.firebaseio.com/users.json 다음 JSON 파일을 검색하는 것입니다 : 나는 다음과 같은 링크에 https가JSON Firebase URL to

{ 
    "-KOIbPUxKWKMaIOuX1cR": { 
     "email": "[email protected]", 
     "lastName": "Alberto", 
     "password": "password", 
     "userName": "Rodolfo" 
    }, 
    "-KOOF5S3kDnvsT9nVx85": { 
     "email": "[email protected]", 
     "lastName": "TEST", 
     "password": "password", 
     "userName": "TEST" 
    } 
} 

을 나는 변환을 얻기 위해 자바 스크립트에 다음과 같은 기능을 사용하고 있습니다 :

var o = 'https://<myInstance>.firebaseio.com/users.json'; 
var arr = Object.keys(o).map(function (k) { return o[k] }); 
console.log(arr) 

그러나이 기능은 다음과 같은 경우 결과 :

Array[53] 

0:"h" 
1:"t" 
2:"t" 
3:"p" 
4:"s" 
5:":" 
6:"/" 
7:"/" 
8:"a" 
9:"g" 
10:"u" 
11:"l" 
12:"a" 
13:"r" 
14:"f" 
15:"i" 
16:"r" 
17:"e" 
18:"d" 

그리고 이것은 내가 모든 이메일 또는 모든 사용자 또는 모든 ID 번호를 검색 할 필요가 필요하지 않습니다 물론

. 그걸 가져올 방법이 있습니까? 아니면 누군가 나를 도울 수있는 코드 조각으로 나를 도울 수 있습니까?

미리 감사드립니다.

답변

1

jQuery map function을 사용하여 개체를 매핑 할 수 있습니다.

$.map(source, function(item, i){ 
    return source.email; //return what you want 
}); 

url에서 json 콘텐츠를 검색하려면 AJAX 요청을해야합니다. 이 작업을 수행하는 간단한 방법은 입니다. 내가 무엇을해야하는지,

window.users = { 
 
    "-KOIbPUxKWKMaIOuX1cR": { 
 
     "email": "[email protected]", 
 
     "lastName": "Alberto", 
 
     "password": "password", 
 
     "userName": "Rodolfo" 
 
    }, 
 
    "-KOOF5S3kDnvsT9nVx85": { 
 
     "email": "[email protected]", 
 
     "lastName": "TEST", 
 
     "password": "password", 
 
     "userName": "TEST" 
 
    } 
 
}; 
 

 

 

 
function getEmails(users){ 
 
    return $.map(users, function(item, i){ 
 
    \t return item.email; 
 
    }); 
 
}; 
 

 
function getSampleObject(users){ 
 
    return $.map(users, function(item, i){ 
 
     return { 
 
     email: item.email, 
 
     username: item.userName 
 
     }; 
 
    }); 
 
}; 
 

 
$(window).ready(function(){ 
 
    var emails, users; 
 
    
 
    emails = getEmails(window.users); 
 
    users = getSampleObject(window.users); 
 
    
 
    $('#output_1').text(JSON.stringify(emails)); 
 
    $('#output_2').text(JSON.stringify(users)); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h2>Retrieves email</h2> 
 
<code id="output_1"></code> 
 
<hr /> 
 
<h2>Retrieves object</h2> 
 
<code id="output_2"></code>

+0

이것은 놀랍습니다! 하지만 AJAX 요청에서 어떻게 코딩 할 수 있습니까? 제발, 좋은 예입니다! 부디!! 나는 설명서를 읽고 있는데 AJAX 요청으로 수천 번 더 잘 동작 할 것이다! 제발 제발! –

+0

AJAX를 만들 때 비동기이기 때문에 콜백 함수에서 결과를 얻습니다. 따라서 결과를 기대하는 함수를 전달할 것입니다. –

0
var o = 'https://<myInstance>.firebaseio.com/users.json'; 
var arr = Object.keys(o).map(function (k) { return o[k] }); 
console.log(arr) 

나는 당신의 VAR o 당신이 아약스 또는 당신이 무엇을 배열이 URL의 모든 단어가 포함되어 보면 당신이 원하는을 사용하여 ... 요청을 firstable 필요로하는 URL (문자열)과 동일하다시피 ...

+0

상관 없음 나는'var에 O'의 모든 단어를 검색 할 필요가 없습니다

$.getJSON("https://<myInstance>.firebaseio.com/users.json", function(result){ // here you get the JSON content }); 

것은 가져온 부분을 살펴 보자 url에서 모든 이메일 변수를 검색하는 것입니다. 정말 유감스럽게 생각합니다. –

+0

그래, 내가 아는 건지 만, 아약스 요청을 먼저하지 않으므로 URL을 반환하는 것입니다. –