2012-04-27 17 views
2

を通じて私はJSON配列上記をループにしたいループJSONオブジェクト

var s = { 
    "TenantGroupName": "Fun Holidays", 
    "queue_details": [{ 
     "queue_key": "1", 
     "channelId": "1", 
     "queue_name": "North India Travel", 
     "contacts": [{ 
      "from": "[email protected]", 
      "subject": "Redemption Coupon", 
      "queue_time": "2:34", 
      "service_level_breached": "false", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }, { 
      "from": "[email protected]", 
      "subject": "Redemption Coupon", 
      "queue_time": "2:34", 
      "service_level_breached": "false", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }, { 
      "from": "[email protected]", 
      "subject": "Redemption Coupon", 
      "queue_time": "2:34", 
      "service_level_breached": "false", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }, { 
      "from": "[email protected]", 
      "subject": "Redemption Coupon", 
      "queue_time": "8:05", 
      "service_level_breached": "true", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }, { 
      "from": "[email protected]", 
      "subject": "Redemption Coupon", 
      "queue_time": "8:34", 
      "service_level_breached": "true", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }] 
    }, { 
     "queue_key": "1", 
     "channelId": "1", 
     "queue_name": "South India Travel", 
     "contacts": [] 
    }, { 
     "queue_key": "1", 
     "channelId": "1", 
     "queue_name": "Summer 2012", 
     "contacts": [{ 
      "from": "[email protected]", 
      "subject": "Redemption Coupon", 
      "queue_time": "2:34", 
      "service_level_breached": "false", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }, { 
      "from": "[email protected]", 
      "subject": "Redemption Coupon", 
      "queue_time": "2:34", 
      "service_level_breached": "false", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }, { 
      "from": "[email protected]", 
      "subject": "Redemption Coupon", 
      "queue_time": "2:34", 
      "service_level_breached": "false", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }, { 
      "from": "[email protected]", 
      "subject": "Redemption Coupon", 
      "queue_time": "9:34", 
      "service_level_breached": "true", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }] 
    }, { 
     "queue_key": "1", 
     "channelId": "3", 
     "queue_name": "Honeymoon", 
     "contacts": [{ 
      "from": "Henry Williams", 
      "subject": "New Zealand", 
      "queue_time": "1:45", 
      "service_level_breached": "false", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }, { 
      "from": "Linda Simpson", 
      "subject": "Redemption Coupon", 
      "queue_time": "2:34", 
      "service_level_breached": "false", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }] 
    }, { 
     "queue_key": "1", 
     "channelId": "7", 
     "queue_name": "Feedback_SMS", 
     "contacts": [{ 
      "from": "@sanjeev", 
      "subject": "Maldives", 
      "queue_time": "1:45", 
      "service_level_breached": "false", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }] 
    }, { 
     "queue_key": "1", 
     "channelId": "5", 
     "queue_name": "Feedback_Twitter", 
     "contacts": [{ 
      "from": "9833202859", 
      "subject": "Wish to travel ...", 
      "queue_time": "1:45", 
      "service_level_breached": "false", 
      "cduId": "4f8b9f2322c60106c0a800bd65cc0000", 
      "contactPkey": "8903" 
     }] 
    }] 
} 

JSONオブジェクトには、次のしています。 undefined:私は

function CreateQueue(jString) { 
    var jSonString = { "MyQueue": jString }; 
    alert(jSonString.MyQueue.length); 
} 

上記の機能の警告を以下のように私はJavascriptにJSONオブジェクトの上に渡されたJavascriptの

に次のように書かれています。 JSON文字列の上をどのようにループすることができますか?

+0


での世話をされますか? javascript consoleに 'alert(typeof myjsonstring)'と入力してみてください – phantasm

答えて

1

上記のオブジェクトは... well..anオブジェクトであり、配列ではありません。唯一の配列はs.queue_detailsです。あなたはそれをループにこれを行うことができます。

for (var i = 0; i < s["queue_details"].length; i++) 
{ 
    var item = s["queue_details"][i]; 
    //do stuff with item 
} 
0

あなただけのアレイで、lengthプロパティを使用して、オブジェクトの長さを取得することはできません。 for (x in y)でオブジェクトをループすることができます。

9

この全体の構造体はオブジェクトであり配列ではないため、.lengthを呼び出すことはできません。また、私はあなたがそれを絶対に使用していない追加オブジェクトにラップする理由を理解していません。オブジェクトのすべてのプロパティにわたってループ処理を

、次の手順を実行します。

for (var key in jString) { 
    if (jString.hasOwnProperty(key)){ 
     console.log("key:"+key+", val:"+jString[key]); 
    } 
} 

ループにアレイの上に、次の手順を実行します。

for (var i = 0; i < s.queue_details.length; i++){ 
    console.log(i+":"+s.queue_details[i]); 
} 
5

私はJSONで動作するように見つける最も簡単な方法クライアント側のXML解析/反復は、スクリプトにjQueryを含めることです。

私は、最初のキューの連絡先エントリを通してループを示し、各エントリの書式付きリンク出力を生成する小さなサンプルを作成しました。

jsFiddle JSON/jQuery example.

は基本的に難しい言葉は、あなたが文字列ではなく、オブジェクトを持っていることを確認している $.each(json, function (index, item) { /*...*/ });