簡體   English   中英

未捕獲的語法錯誤意外令牌{在JSON中

[英]Uncaught syntaxerror unexpected token { in JSON

使用方法POST時收到此錯誤。 請幫我。

  angular_min.js:114 SyntaxError: Unexpected token { in JSON at position 71
    at JSON.parse (<anonymous>)
    at wc (angular_min.js:16)
    at cc (angular_min.js:88)
    at angular_min.js:89
    at n (angular_min.js:7)
    at hd (angular_min.js:89)
    at c (angular_min.js:91)
    at angular_min.js:126
    at m.$eval (angular_min.js:141)
    at m.$digest (angular_min.js:138)

我的代碼:var json = {parameter_name:“ amount”,“ parameter_value”:$ scope.it.amount};

         var arr=[];
         arr.push(json);
         $scope.object={formula:$scope.it.formula_saving_point};
         $scope.companyTemp={company_id:com_id};
         var url = API_URL + "cumulative_point_formula";    
         var cmd = "check_formula";
         var jsonFinal = JSON.stringify({json_parameter: JSON.parse(JSON.stringify(arr)),
          company: JSON.parse(JSON.stringify($scope.companyTemp)),
          cumulative_point_formula: JSON.parse(JSON.stringify($scope.object))});

此日志jsonFinal

{"json_parameter":[{"parameter_name":"amount","parameter_value":"111111111"}],"company":{"company_id":40743},"cumulative_point_formula":{"formula":"amount/10000"}}

這是方法POST:

 $http({
              method: 'POST',
              url: url,
              data: $.param({cm: cmd, dt: jsonFinal}),
              headers: {'Content-Type': 'application/x-www-form-urlencoded'}
            }).success(function (response) {
              console.log("success");
});

如何解決這個錯誤?

如果您仔細檢查一下錯誤,它源自JSON.parse而不是$ http 我相信此錯誤是由此行引起的

var jsonFinal = JSON.stringify({json_parameter: JSON.parse(JSON.stringify(arr)),
    company: JSON.parse(JSON.stringify($scope.companyTemp)),
    cumulative_point_formula: JSON.parse(JSON.stringify($scope.object))});

這里的這段代碼非常多余:

JSON.parse(JSON.stringify($scope.companyTemp))

stringify > parse的結果將與$ scope.companyTemp相同,其他結果也將與此相同:

  var jsonFinal = JSON.stringify({
      json_parameter: arr,
      company: $scope.companyTemp,
      cumulative_point_formula: $scope.object
  });

JSON.parse將JSON字符串轉換為有效的JavaScript對象

JSON.stringify將JavaScript對象轉換為字符串

如果仍然產生錯誤,我相信這三個arr$ scope.companyTemp$ scope.object中的一個具有無效值。

希望能有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM