2014-11-16 6 views
0

В ASP.NET MVC Я вызываю метод контроллера, который возвращает JsonResult.JSON.parse - недействительный токен

В моей JavaScript я пытаюсь сделать это:

var result = JSON.parse(data); 

Где data это:

{ 
    "ExtensionData": {}, 
    "ErrorMessage": "Test error message.", 
    "From": null, 
    "Notation": null, 
    "To": null, 
    "Valid": false 
} 

Но я получаю следующее сообщение об ошибке:

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

I попробовали разбор данных на http://jsonlint.com/, но он разбирает ОК там.

Что я делаю неправильно?

EDIT:

Я использую AngularJS и я вызываю метод контроллера, который возвращает JSON, как это.

$scope.move = function (to) { 
    var x = $http({ 
     url: moveUrl, 
     method: "POST", 
     params: { gameId: $scope.game.id, fromPosition: $scope.game.board.selectedSquare, toPosition: to } 
    }); 

    x.success(function (data) { 
     var moveResult = JSON.parse(data); 
    ... 
    ... 
    }); 

Этот аналогичный вызов, который выполняется до того, как вышеуказанный на самом деле работает нормально.

$scope.getGameModel = function() { 
    var x = $http({ 
     url: gameModelUrl, 
     method: "POST", 
     params: { gameId: $scope.game.id, startingFen: $scope.startingFen } 
    }); 

    x.success(function (data) { 
     $scope.game = JSON.parse(data); 
    }); 

    x.error(function (data) { 
     $scope.error = data; 
    }); 
+0

Вы можете добавить свой звонок в AJAX? – TysonWolker

+0

console.log (typeof data === 'object') - это правда? – TysonWolker

+1

Если ваш возвращаемый JsonResult (например, 'return Json (myObject);'), то 'data' уже JSON, поэтому вы не должны пытаться его снова проанализировать. –

ответ

0

Вы можете непосредственно использовать в качестве Javascipt

var errorMessage = data.ErrorMessage; 

Нет необходимости конвертировать его в формат JSON.

Смежные вопросы