2016-11-26 5 views
4

バイトを吐き出すだけです。jQueryライブラリを使用して配列をダウンロードし、なぜ私は配列をダウンロードしてその長さを取得しようとしているのですか?配列が

$.get({ 
 
    url: 'https://rawgit.com/tvman-123/shrek/master/ExampleOutputForSubscription_Post.php', // 
 
    data: {}, 
 
    success: function(data) { 
 
    ParseData(data); 
 
    } 
 
}); 
 

 

 
function ParseData(data) { 
 
    console.log(data.length) //Returns 221 
 
}
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

をしかし、私は、配列をインラインで含まれている場合、それはそうのようになっているように、それが動作します:ネイティブJavascriptを、それはちょうどそうと同じように、配列のバイト数の合計を出してくれる。

data=["UU9CuvdOVfMPvKCiwdGKL3cQ","UUrTNhL_yO3tPTdQ5XgmmWjA","UUz-RZblnhjXK_krP1jDybeQ","UUc_xdkOBgSYLmXTn-VSQ4uA","UUmb8hO2ilV9vRa8cilis88A","UU45SDrjKlPSY0bTvH6F7TOA","UUdGkmb5zEDXnPSmQlV43t0Q","UUpeGBKn0axOJAcPHkcPiXcg",""] 
 
ParseData(data) 
 

 
function ParseData(data){ 
 
console.log(data.length)//Returns 9 
 
}
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

私の理解では、最初の1バイト配列で2つ目は、ArrayListにあるということです。

誰かがこれをやっている理由とそれを修正する方法を教えてください。

EDIT:この場合にはJSON(、

は、あなたの答えありがとうございました、そして、応答がサーバから来るとき、私はこの問題を解決する

+0

データが要求から取得されると、データは常にバイトストリーム(この場合は文字列)として取り込まれます。あなたのために配列にあらかじめ解析されているわけではありません。 – Jerry

+0

配列がAPIから転送されるとき、配列は通常JSON(オブジェクトの文字列表記)として転送されます。最初にJSONを解析する必要があります – martianwars

答えて

1

受信したデータのタイプは、JSONです! データ型を追加する: "JSON"

$.get({ 
 
    url: 'https://rawgit.com/tvman-123/shrek/master/ExampleOutputForSubscription_Post.php', // 
 
    data: {}, 
 
    dataType: "json", 
 
    success: function(data) { 
 
    console.log(data.length); // data is parsed.. =) 
 
    } 
 
});

3

を支援することは、それはバイトの形で一般的です)。これはもはや真の意味での配列ではなく、文字列のようなものです。

まず、JSONを配列に変換する必要があります。それだけであなたは真の長さを見つけることができます。

最初のケースでJSONを解析するのを忘れてしまった。最初にJSON.parse(data)を使用し、配列の長さを確認してください。

4

バイトストリーム(この場合は文字列)として入力されるため、JSON.parseが必要です。

$.get({ 
 
    url: 'https://rawgit.com/tvman-123/shrek/master/ExampleOutputForSubscription_Post.php', // 
 
    data: {}, 
 
    success: function(data) { 
 
    ParseData(JSON.parse(data)); 
 
    } 
 
}); 
 

 

 
function ParseData(data) { 
 
    console.log(data.length); 
 
}
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

0

アレイの両方をストリングオブジェクトは、それら性を提供します。 読んでいるものは、検索した文字列の長さです。オブジェクトはインターネット経由で移動できないため、Arrayオブジェクトではありません。

あなたのデータ変数には、配列コードの文字列表現があります。実際の配列オブジェクトとして使用するために、最初する必要がある(現在では広くサポートされている)を使用してオブジェクトを評価JSON API 方法パース。次に、文字列の長さの代わりに配列の長さを取得することができます。

関連する問題