2016-11-28 7 views
0

私のコントローラ機能をキーと値を使用する方法:URLからJSONレスポンスを読み、Javascriptの内側(配列内の配列)

public function displayAction(Request $request) 
{ 
    $stat = $this->get("app_bundle.helper.display_helper"); 
    $displayData = $stat->generateStat(); 
    return new JsonResponse($displayData); 
} 

URLから私のJSON応答は次のようになります。この応答から {"Total":[{"date":"2016-11-28","selfies":8},{"date":"2016-11-29","selfies":5}],"Shared":[{"date":"2016-11-28","shares":5},{"date":"2016-11-29","shares":2}]}

あなたのコールバックは、以下を使用し内部

$(document).ready(function(){ 

var selfie = [ 
      [(2016-11-28),8], [(2016-11-29),5]] 
     ]; 

var shared = [ 
      [(2016-11-28),5], [(2016-11-29),2]] 
     ]; 
}); 
+0

「警告」とは何ですか? – MysterX

+0

getJSONを使用するため、パラメータデータはすでにjsonオブジェクトです。 – pictoru

+0

なぜこの質問をd​​ownvote?これは私の本物の問題でした!以来、私はjavascriptに新しいです。 @MysterX –

答えて

0

:私のようなJavaScriptのファイル(共有、自分撮り)変数に値を渡したい

$.each(data.total, function(i, o){ 
    console.log(o.selfies); 
    console.log(o.date); 

    // or do whatever you want here 
}) 

あなたはコールバックに送られたパラメータdataをjetJSON使用して要求をするので、あなたが応答を解析する必要はありませんので、すでにオブジェクトです。

0

このように試すことができます。

まず、先頭のオブジェクトデータをトラバースし、配列のデータの各プロパティをトラバースします。

var data = {"total":[{"date":"2016-11-28","selfies":0},{"date":"2016-11-29","selfies":2},{"date":"2016-11-30","selfies":0},{"date":"2016-12-01","selfies":0},{"date":"2016-12-02","selfies":0},{"date":"2016-12-03","selfies":0},{"date":"2016-12-04","selfies":0}],"shared":[{"date":"2016-11-28","shares":0},{"date":"2016-11-29","shares":0},{"date":"2016-11-30","shares":0},{"date":"2016-12-01","shares":0},{"date":"2016-12-02","shares":0},{"date":"2016-12-03","shares":0},{"date":"2016-12-04","shares":0}]} 
 

 
Object.keys(data).forEach(function(k){ 
 
    
 
    var val = data[k]; 
 
    
 
    val.forEach(function(element) { 
 
    console.log(element.date); 
 
    console.log(element.selfies != undefined ? element.selfies : element.shares); 
 
     
 
    }); 
 
    
 
});

+0

はい、これが私の問題を解決しました!.. –

+0

嬉しいです:) – Deep

0

これを試してみてください:

var text ='{"Total":[{"date":"2016-11-28","selfies":0},{"date":"2016-11-29","selfies":2}],"Shared":[{"date":"2016-11-28","shares":0},{"date":"2016-11-29","shares":0}]}'; 
 

 
var jsonObj = JSON.parse(text); 
 

 
var objKeys = Object.keys(jsonObj); 
 

 
for (var i in objKeys) { 
 
    var totalSharedObj = jsonObj[objKeys[i]]; 
 
    if(objKeys[i] == 'Total') { 
 
    for (var j in totalSharedObj) { 
 
    document.getElementById("demo").innerHTML += 
 
    "selfies on "+totalSharedObj[j].date+":"+totalSharedObj[j].selfies+"<br>"; 
 
    } 
 
    } 
 
    if(objKeys[i] == 'Shared') { 
 
    for (var k in totalSharedObj) { 
 
    document.getElementById("demo").innerHTML += 
 
    "shares on "+totalSharedObj[k].date+":"+totalSharedObj[k].shares+"<br>"; 
 
    } 
 
    } 
 
}
<div id="demo"> 
 

 
</div>

0

私は研究&の多くをした他のユーザーからの助けを取って、最終的には私の問題を解決することができます。私のソリューションを共有することを考えました。

$.get("Address for my JSON data", function(data) { 


     var selfie =[]; 
     $(data.Total).each(function(){ 
      var tmp = [ 
       this.date, 
       this.selfies 
      ]; 
      selfie.push(tmp); 
     }); 
     var shared =[]; 
     $(data.Shared).each(function(){ 
      var tmp = [ 
       this.date, 
       this.shares 
      ]; 
      shared.push(tmp); 
     }); 
}); 
関連する問題