2017-08-30 126 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作用于对象,而不是集合或字符串。

相关问题