Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Parsing JSon data in AngularJS from $http call

I'm very new to both web development and AngularJS. I am trying to write a web page that will automatically update its info based on JSon files sitting on my server. I can get the json data but I can't seem to parse the data coming in. I validated the json data just to make sure I was writing it correctly, but whenever I display it on the site is just displays as a single string. I am not able to access the individual members. My factory and controller are below. Any help would be greatly appreciated!!

var MyController = function($scope, $log, MyFactory) {
    $scope.notes =[];

function init() {
    MyFactory.getNotes()
        .success(function(notes){
            $scope.notes = JSON.parse(notes);
        })
        .error(function(data, status, headers, config) {
                $log.log(data.error + ' ' + status);
            });
}

    init();

angular.module('MyApp')
    .controller('MyController', MyController);
};

And the factory:

    var MyFactory = function($http) {
    var factory = {};
    factory.getNotes = function() {
        return $http.get('/ci/data.json');
    };
return factory;
};

angular.module('MyApp').factory('MyFactory', 
                                    MyFactory);

I admit the code and question is crude but I've just started. Any additional help on architecture and style would be appreciated as well! Thanks in advance!

like image 642
Edited Content Avatar asked Apr 20 '14 07:04

Edited Content


2 Answers

  1. You don't need to parse the response as json. If the sourcefile is giving you valid json, angular knows its json.

  2. In your controller, try to console.log($scope.notes). If using google chrome, you get the json results pretty printed in the console you know your factory is working.

  3. Use an angular forEach to iterate through the result to do something with it.

    angular.forEach($scope.notes, function(note) {
        console.log(note);
    });
    
like image 158
aludvigsen Avatar answered Oct 09 '22 09:10

aludvigsen


You can use angular.fromJson(jsondata) to parse http result. Previously i was getting invalid json data from http response, some "\ characters were there in the json data so i parsed using this and it worked for me, it removed all those invalid characters from my json data.

like image 1
Anonymous Avatar answered Oct 09 '22 08:10

Anonymous