Я хочу отправить два массива $scope.candidates
и $scope.managers
в качестве POST для некоторого PHP, который я буду кодировать для сервера. Я настоятельно предпочитаю интерфейс JSON и подумал объединить их в один объект JSON.
var JsonString = {'candiates' : JSON.stringify($scope.candidates),
'managers' : JSON.stringify($scope.managers)
};
Не генерирует действительный JSON. Как мне добиться того, чего я хочу?
4 ответа
Я не совсем уверен, что вы хотите? Вы хотите, чтобы JSON-сериализованные строки были встроены в JSON?
var JsonString = JSON.stringify({
'candiates' : JSON.stringify($scope.candidates),
'managers' : JSON.stringify($scope.managers)
};)
Или вы просто хотите один большой объект JSON с candidates
и managers
в виде списков JSON?
var JsonString = JSON.stringify({
'candiates' : $scope.candidates,
'managers' : $scope.managers
};)
Создайте один объект и зафиксируйте его!
var both = {
candidates : $scope.candidates,
managers : $scope.managers
}
Тогда:
var JsonString = JSON.stringify(both)
Помните, что JSON.stringify работает с объектами, а не с коллекциями или строками.
JSON - это формат, здесь нет «объекта JSON».
Создайте весь объект, который вы хотите отправить, а затем сгенерируйте строку JSON:
var myObj= {
candidates: $scope.candidates,
managers: $scope.managers
}
var myJson=JSON.stringify(myObj);
Почему бы нет:
var JsonString = JSON.stringify({
candidates: $scope.candidates,
managers: $scope.managers
});
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.