SyntaxError:Object.parse(native)AngularJS上的意外标记o

blu*_*nha 31 javascript json angularjs angularjs-http

来自AngularJS noob的问题.

我正在尝试使用asmx Web服务来显示网格.我测试了Web服务,它正确输出了JSON数据.这是我的控制器

app.controller('SetupController', ['$scope', '$http', function ($scope, $http) {

    var url = 'app/pricefilessetup/grid.asmx/getGridJson';

    $http.get(url).success(function (data) {
        var myjson = JSON.parse(data);
        $scope.products= JSON.parse(myjson);
    });
}]);
Run Code Online (Sandbox Code Playgroud)

出于某种原因,SO不允许我粘贴html,但它基本上有一个ng-controller指令和ng-repeat来循环遍历JSON数据.

当我运行这个Web应用程序时,我收到错误

SyntaxError:Object.parse(native)上的意外标记o,它指向以下行

  $scope.questions = JSON.parse(myjson);
Run Code Online (Sandbox Code Playgroud)

我尝试使用alert检查myjson的值,它显示[object Object],[object Object],...

这里有什么我想念的吗?

Pan*_*kar 29

我认为返回的数据已经是JSON,不需要JSON.parse(),除非它是字符串格式.

$scope.products= data;
Run Code Online (Sandbox Code Playgroud)


Ram*_*ran 8

为什么你JSON.parse两次使用?

 var myjson = JSON.parse(data);
  $scope.products = JSON.parse(myjson);
Run Code Online (Sandbox Code Playgroud)

您已经解析了数据对象,那么为什么要解析另一次?

另外我认为你的数据是返回Json结果,所以你不需要解析对象

只是用这个

$scope.products = data;
Run Code Online (Sandbox Code Playgroud)


fat*_*Cop 7

您的变量myjson已经是有效的JavaScript对象.您不必在其上使用JSON.parse.