2015-08-10 3 views
1

Я пытаюсь получить данные JSON, используя функцию $http; Я всегда получаю за это ошибку. Вот мой HTML код:

<!DOCTYPE html> 
<html> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
<body> 

<div ng-app="myApp" ng-controller="customersCtrl"> 

<ul> 
    <li ng-repeat="x in code"> 
    {{ x.code }} 
    </li> 
</ul> 

</div> 

<script> 
var app = angular.module('myApp', []); 
app.controller('customersCtrl', function($scope, $http) { 
    $http.get("data.json") 
    .success(function (response) {$scope.code = response;}) 
    .error(function (response) {alert("Error")}) 
}); 
</script> 

</body> 
</html> 

Вот мой data.json файл:

{ 
    "code":"#include <stdio.h> 

      int main() 
      { 
      printf('Hello world'); 
      return 0; 
      }" 
} 

Здесь представлен plunker http://plnkr.co/edit/Q4dsCjHM3ykgp2SaHw35?p=preview

+0

ваши данные не правильный JSON – Sajeetharan

ответ

2

ли изменить свои данные below.Basically она должна быть строка, используйте pre тег для разрыва строки & затем заменить войти на \n

{ 
    "code": "#include <stdio.h>\n int main()\n printf('Hello world');\n return 0;\n}" 
} 

HTML

<ul> 
    <li ng-repeat="x in code"> 
    <pre>{{ x }}</pre> 
    </li> 
</ul> 

Working Plunkr

+0

Как может Я включаю разрывы строк, могу помочь мне –

+0

@ RamanaUday вы можете посмотреть обновленный ответ & plunkr –

+0

Где я должен включить pre tag. Могу ли я включить в json-файл. –

2

Ваш JSON плохо отформатирован. string строка кода должна быть на одной линии, например,

{ 
    "code": "#include <stdio.h> int main() ...." 
} 

Вы всегда можете проверить свой JSON на jsonlint.com

0

Ваш JSON не хорошо форматируется.

JSON

{ 
    "code":"#include <stdio.h>int main(){printf('Hello world');return 0;}" 
} 

Затем, вы можете получить доступ к code поле в запросе:

контроллер

$http.get("data.json") 
    .success(function (response) { 
    $scope.code = response.code; 
}) 
.error(function (response) { 
    alert("Error"); 
}); 
+0

почему вам нужно' response.data'? –

+0

Почему? Да нет необходимости в 'response.data', просто говоря« response.code », чтобы получить данные поля« code »в JSON –

+0

, потому что у вас уже есть данные в вашем первом варианте. Если вы использовали'. Then', тогда только вам нужно будет сказать 'reponse.data', хотя response.code правильный. Я удаляю свой downvote. Благодаря :) –