6

重複の可能性:
jqueryで配列の長さ(サイズ)を検索する

次のようにphpファイルからjsonオブジェクトが返されます:-

{"food":[
    {
        "name"       :"Belgian Waffles",
        "price"      :"$5.95",
        "description":"two of our famous Belgian Waffles with plenty of real maple syrup",
        "calories"   :"650"
    },
    {
        "name"       :"Strawberry Belgian Waffles",
        "price"      :"$7.95",
        "description":"light Belgian waffles covered with strawberries and whipped cream",
        "calories"   :"900"
    },
    {
        "name"       :"Berry-Berry Belgian Waffles",
        "price"      :"$8.95",
        "description":"light Belgian waffles covered with an assortment of fresh berries and whipped cream",
        "calories"   :"900"
    }
]}

これは基本的に、オブジェクトから3つの食品要素を返します。jsonデータが動的であり、jqueryを使用して不明な場合、返される要素の総数のカウントを取得するにはどうすればよいですか?

4

3 に答える 3

16

JSONを解析し(またはjQueryがそれを実行し、Ajax関数を使用する場合はそれを実行します)、結果のオブジェクトが変数に含まれていると仮定すると、次のようになります。

var data = /* your parsed JSON here */
var numberOfElements = data.food.length;

(注:JSONオブジェクトのようなものはありません:JSONを解析する前は文字列です;解析した後はオブジェクトです。

編集:コメントで、プロパティが呼び出されていることを知らないと言いましたfood-プロパティが1つだけあり、そのプロパティが配列になることわかっている場合は、次のように実行できます。

var data = /* your object */
var propName;
var numberOfElements;
for (propName in data);
numberOfElements = propName ? data[propName].length : 0;

プロパティが1つだけになるかどうかわからない場合は、要件があいまいすぎます。複数のプロパティがある場合、どれの長さを確認しますか?

于 2012-12-17T00:59:04.340 に答える
6
var json = '{"food":[{"name":"Belgian Waffles","price":"$5.95","description":"two of our famous Belgian Waffles with plenty of real maple syrup","calories":"650"},{"name":"Strawberry Belgian Waffles","price":"$7.95","description":"light Belgian waffles covered with strawberries and whipped cream","calories":"900"},{"name":"Berry-Berry Belgian Waffles","price":"$8.95","description":"light Belgian waffles covered with an assortment of fresh berries and whipped cream","calories":"900"}]}';

var obj = JSON.parse(json);

alert(obj.food.length);​

デモ:http://jsfiddle.net/XhG6L/

IE8以下ではJSONがネイティブでサポートされていませんが、ポリフィルが利用可能であることに注意してください。

また、別の注意点として、jQueryはここで作業を行っていません-これは単なる古いjavascriptです。

于 2012-12-17T00:59:19.790 に答える
0

jsonデータが動的であり、jqueryを使用して不明な場合、返される要素の総数のカウントを取得するにはどうすればよいですか?

長さプロパティを使用してカウントを取得できます。このプロパティは、食品に対して呼び出す必要があります。食品は3つのアイテムを返すため、data.food.length; データをグローバルオブジェクトとして使用できます。

また、JSONが有効であることを確認してください。有効に見えますが、手動で改行があるように見えますが、その場合は失敗します。

于 2012-12-17T01:12:52.770 に答える