Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SyntaxError: Unexpected token o at Object.parse (native) AngularJS

Question from AngularJS noob.

I am trying to use an asmx web service to display grid. I tested the web service and it correctly outputs the JSON data. Here is my controller

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);
    });
}]);

For some reason, SO is not allowing me to paste the html but it basically has a ng-controller directive and ng-repeat to loop through the JSON data.

When I run this web app, I get the error

SyntaxError: Unexpected token o at Object.parse (native) and it points to following line

  $scope.questions = JSON.parse(myjson);

I tried checking the value of myjson using alert and it displays [object Object], [object Object], ...

Is there anything I am missing here

like image 249
blue piranha Avatar asked Apr 21 '15 05:04

blue piranha


2 Answers

I think data returned is already in JSON, no need of JSON.parse(), unless it in string format.

$scope.products= data;
like image 186
Pankaj Parkar Avatar answered Oct 16 '22 05:10

Pankaj Parkar


Why you using JSON.parse in two times?

 var myjson = JSON.parse(data);
  $scope.products = JSON.parse(myjson);

You have already parse the data object,So then why you parsing another one time?

also i think your data is return Json result, so you don't need to parse the object

just use this

$scope.products = data;
like image 8
Ramesh Rajendran Avatar answered Oct 16 '22 06:10

Ramesh Rajendran