はじめまして。
Javascriptにおいて、以下のようなJSONから各Date(計3つ)のdate,limittを出力したいと考えています。
json
1 2[ 3 { 4 "Date": { 5 "date": "2015-10-02 18:04:00", 6 "id": "6", 7 "item_id": "30", 8 "limitt": "10" 9 }, 10 "Item": { 11 "adress": "出町柳", 12 "title": "ランニングエクササイズ", 13 "whom": "8" 14 }, 15 "Purchase": [ 16 { 17 "created": "2015-10-02 07:00:00", 18 "quantity": "5", 19 "user_id": "12" 20 }, 21 { 22 "created": "2015-10-03 00:00:00", 23 "quantity": "5", 24 "user_id": "12" 25 } 26 ] 27 }, 28 { 29 "Date": { 30 "date": "2015-10-11 18:05:00", 31 "id": "7", 32 "item_id": "30", 33 "limitt": "15" 34 }, 35 "Item": { 36 "adress": "出町柳", 37 "title": "ランニングエクササイズ", 38 "whom": "8" 39 }, 40 "Purchase": [ 41 { 42 "created": "2015-10-03 19:01:39", 43 "quantity": "1", 44 "user_id": "36" 45 } 46 ] 47 }, 48 { 49 "Date": { 50 "date": "2015-10-03 12:16:00", 51 "id": "8", 52 "item_id": "30", 53 "limitt": "3" 54 }, 55 "Item": { 56 "adress": "出町柳", 57 "title": "ランニングエクササイズ", 58 "whom": "8" 59 }, 60 "Purchase": [] 61 } 62]
そこで以下のコードまでは実装できたのですが、全てのデータが出力されてしまいます。
javascript
1<script type="text/javascript"> 2 3httpObj = new XMLHttpRequest(); 4httpObj.open("get", "data2.json", true); 5httpObj.onload = function(){ 6 var arr = JSON.parse(this.responseText); 7 var txt = ""; 8 9 for(var k in arr){ 10 var v = arr[k]; // 値をコピー 11 12 for(var k2 in v){ 13 var v2 = arr[k][k2]; 14 15 for(var k3 in v2){ 16 var v3 = arr[k][k2][k3]; 17 18 txt = txt + v3 + "<br>"; 19 } 20 21 } 22} 23 24 document.getElementById("result").innerHTML = txt; //<div id="result"></div>がbody上にあります。 25} 26httpObj.send(null); 27 28</script> 29
javascript
1httpObj.onload = function(){
また、上記のfunction()を除いたコードに変更したいと考えています。
このような場合、どのようにコードを修正すればよいでしょうか?
何かご存知の方は、是非ともご教授のほどよろしくお願いします。
※jQueryのgetJSONでは正常に出力できたものの、他のコードとの兼ね合いでこのような方法を選択しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/08 13:18