2017-08-30 178 views
1

我想發送兩個數組$scope.candidates$scope.managers作爲POST到一些PHP,我將代碼爲服務器。我強烈喜歡JSON接口,並且認爲將它們組合成一個JSON對象。如何將兩個JavaScript數組合併成一個JSON?

var JsonString = {'candiates' : JSON.stringify($scope.candidates), 
         'managers' : JSON.stringify($scope.managers) 
        }; 

不生成有效的JSON。我如何實現我想要的?

+0

您試圖對兩個字符串的集合進行字符串化,這是不會做的,因爲JSON.stringify需要一個對象進行字符串化。 請參閱下面的答案,瞭解正確的語法;) – DanteTheSmith

回答

1

我不完全確定你想要什麼?你想在JSON中嵌入JSON序列化的字符串嗎?

var JsonString = JSON.stringify({ 
    'candiates' : JSON.stringify($scope.candidates), 
    'managers' : JSON.stringify($scope.managers) 
};) 

或者你只是想既candidatesmanagers爲JSON列出一個大的JSON對象?

var JsonString = JSON.stringify({ 
    'candiates' : $scope.candidates, 
    'managers' : $scope.managers 
};) 
4

JSON是一種格式,沒有「JSON對象」。

創建要發送,然後生成JSON字符串整個對象:

var myObj= { 
    candidates: $scope.candidates, 
    managers: $scope.managers 
} 

var myJson=JSON.stringify(myObj); 
1

爲什麼不:

var JsonString = JSON.stringify({ 
     candidates: $scope.candidates, 
     managers: $scope.managers 
    }); 
1

然後做一個單一的對象字符串化該對象!

var both = { 
    candidates : $scope.candidates, 
    managers : $scope.managers 
} 

則:

var JsonString = JSON.stringify(both) 

記住JSON.stringify作用於對象,而不是集合或字符串。

相關問題