我是JSON的新手,我正在準備從服務器收到的響應在客戶端的JSON對象。 我想要的數據看起來像下面JSON推送到JavaScript嵌套的JSON對象
[
{"number" : "456" ,
"effort" : [{
"effort_type" : "A",
"act_effort" : 10 },
{"effort_type" : "B",
"act_effort" : 20 }]
},
{"number" : "123" ,
"effort" : [{
"effort_type" : "A",
"act_effort" : 5},
{"effort_type" : "B",
"act_effort" : 30},
{"effort_type" : "C",
"act_effort" : 15}]
}
]
我創建從響應此JSON從服務器接收如下
$http.get('/colist').success(function(response) {
//console.log ("i GET the data of projects");
$scope.project = response;
}
下面是準備我的第二個JSON對象的代碼
var actEffortData = [];
var dataSource = $scope.project;
for(i=0; i<dataSource.length; i++){
var dupCoFound="N";
var currentNumber=dataSource[i].number;
var currentEffort = parseInt(dataSource[i].act_effort);
var currentEffortType= dataSource[i].effort_type;
if(i==0){
actEffortData.push({
number : currentNumber,
effort : {
effort_type:currentEffortType,
act_effort:currentEffort
}
});
} else {
for(k=0; k < actEffortData.length; k++){
var dupCEffFound="N";
if(actEffortData[k].number == currentNumber){
for(n=0; n < actEffortData[0].effort.length; n++){
if(actEffortData[k].effort[n].effort_type == currentEffortType){
var currentEffortTemp = actEffortData[k].effort[n].act_effort + currentEffort;
actEffortData[k].effort[n].act_effort = currentEffortTemp;
dupCEffFound="Y";
break;
}
}
if(dupCEffFound == "N"){
var tempActEffort =[];
tempActEffort = actEffortData[k].effort;
tempActEffort.push({
effort_type:currentEffortType,
act_effort:currentEffort
});
}
dupCoFound = "Y";
break;
}
}
if (dupCoFound=="N"){
actEffortData.push({
number : currentNumber,
effort : {
effort_type:currentEffortType,
act_effort:currentEffort
}
});
}
}
我收到的錯誤如下:
Error: tempActEffort.push is not a function
任何人都可以告訴我如何實現這一目標? 請注意,實際代碼的功能超過了上述功能,因此您可能會發現冗餘變量的使用情況。
在此先感謝。
請參見'tempActEffort = actEffortData [k] .effort'行不再允許變量'tempActEffort'作爲數組... ...! – 2015-03-25 09:04:51
如果在你的服務器端,當客戶端服務器收到響應時,你已經準備好json數據到你的客戶端..只是一個建議 – 2015-03-25 09:05:25
@Oli Soproni B.我需要多個JSON對象,每個對象都有不同的結構要繪製的東西。我無法在服務器端準備傑森數據。 – DivB 2015-03-25 11:53:56