2016-08-09 6 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" 
    } 
} 

を、私は変換を行う取得するにはJavaScriptで次の関数を使用しています:

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リクエストを行う必要があります。これを行う簡単な方法はを使用しています。

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

このスニペットを見てみましょう:

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はあなたがfirstable必要なURL(文字列)に等しい見るように要求...使用してAJAXまたは任意のあなたは、アレイは、URLのすべての単語が含まれて見ればあなたが望むを作ります...

+0

をなしていない私は何をする必要があるか、 'VARのo'のすべての単語を取得する必要はありません。 URLからすべての電子メール変数を取得することです。私は本当に私の質問をよく説明していない可能性があります大変申し訳ありません。 –

+0

ええ、私は知っているが、私はあなたのコードに何があるかを言っている、あなたは最初にアヤックスのリクエストをしていないので、あなたはURLを返している –