如何在发送到AngularJS中的服务器之前从JSON中删除多余的引号

时间:2017-09-18 23:12:30

标签: javascript angularjs json forms angular-forms

所以我试图在服务器端发送与模型匹配的数据。我的js代码如下:

vm.answers={}
vm.formData = {answers:vm.answers};

vm.continue=function(){
       $location.path('profiles')
       if(user=='employer'){ 
           $scope.json = angular.toJson(vm.formData);
         questionService.postPostingAnswers($scope.json).then(function (data) {
         location.path("/profiles")
         console.log(data)
         },
         function () {
             alert("Error processing your request")
         }); }

         else{
             $scope.json = angular.toJson(vm.formData);
             questionService.postProfileAnswers($scope.json).then(function (data) {
                 location.path("/profies")
         console.log(data)
         },
         function () {
             alert("Error processing your request")
         });
         }
      }

我的问题是,当我使用angular.toJson时,它也会对formData的花括号进行字符串化,这是我不想要的。 我的服务器需要一个像:

这样的机构
{
   "answers": {
    "Q1": "A2",
    "Q2": "A4"
   }
}

我使用当前代码发送的内容是:

 "{
       "answers":{
       "Q1":"A2",
       "Q2":"A4"
      }
    }"

我该怎么做才能解决这个问题?谢谢一堆! :)

1 个答案:

答案 0 :(得分:1)

解决方案:不要发送解析的对象。刚

questionService.postProfileAnswers(vm.formData)

没关系。如果不起作用,请传递postProfileAnswers函数代码。

更新:请制作一个plnkr,或者只是检查您的控制台或分享屏幕截图。

很奇怪,杰森不要添加""。请检查您的问题是否是另一个,""用于调试建议。

此外,如果您仍然想到Json添加"",请尝试使用

删除第一个和最后一个字符
$scope.json = $scope.json.slice(1, -1);