2014-09-10 3 views
0

이제 ExtJS4에서 선형 차트로 작업합니다. 차트는 상점의 데이터를 기반으로합니다. 저장소는 'loadRawData()'함수를 사용하여 데이터를 변경합니다. 친숙한 상황이지 않습니까?문자열 조각으로 JSON 작성

AJAX는 10 초마다 문자열을 보내고이 문자열에서 JSON을 작성해야합니다. 나는 노력하고있다 :

success: function(response) { 
    var requestMassive = JSON.parse(response.responseText); 
    var jArray = []; 
       for(var i=0;i<requestMassive.length;i++){ 
        var firstPiece = JSON.parse(response.responseText)[i].date; 
        var secondPiece = JSON.parse(response.responseText)[i].connectCount; 
        var recording = "{'machinesPlayed':"+firstPiece+", 'machinesOnline':"+secondPiece+"}"; 
        jArray.push(recording); 
       } 

       jArray = '['+jArray+']'; 
       store.loadRawData(jArray); 
} 

그러나 그것은 틀리다. 그것을 올바르게하는 방법?

+0

상점 및 모델을 어떻게 정의 했습니까? – pherris

+0

Ext.define ('Connections', { 확장 : 'Ext.data.Model', fields : [ 'date', 'connect'] }); –

+0

var store = Ext.create ('Ext.data.Store', { model : 'Connections', 데이터 : [ {날짜 : 586787897, 연결 : 43}, {날짜 : 45345435, 연결 : 56} ... ] }); –

답변

1

대신 loadRawData()loadData() 기능을 사용할 수 있습니다. loadData()은 개체 배열 만 있으면됩니다.

success: function(response) { 
    var requestMassive = JSON.parse(response.responseText); 
    var jArray = []; 
     for(var i=0;i<requestMassive.length;i++){ 
     jArray.push({ machinesPlayed: requestMassive[i].date, machinesOnline: requestMassive[i].connectCount}); 
     } 

     store.loadData(jArray); 
} 
+0

그것은 작동합니다! 나는 그것을 사용했다. 고맙습니다! –

+0

질문이 해결되면이 답변 옆의 체크 표시를 선택하십시오. – pherris

1

나는 당신이 얻으려고하는 것을 얻지 못했습니다.하지만이 방법으로 형성 될 수 있습니다.

var recording = { 
    "machinesPlayed" : firstPiece, 
    "machinesOnline" : secondPiece 
} 
jArray.push(recording); 

OR 
jArray.push({ 
    "machinesPlayed" : firstPiece, 
    "machinesOnline" : secondPiece 
}); 
+0

너무 효과가 있습니다! 감사! –