2015-10-14 154 views
1

儘管從AngularJS documentation for angular.fromJson是壯觀的,我仍然不知道如何充分利用它的潛力。最初,我剛剛直接將來自HTTP請求的JSON數據響應分配給$scope變量。我最近注意到Angular有一個內置的fromJson()函數,這似乎是我想要使用的東西。如果我使用它,是否更安全,我可以更容易地訪問數據元素嗎?JSON反序列化與angular.fromJson()

這是我怎麼一直在做:

$http({ 
    method: 'GET', 
    url: 'https://www.reddit.com/r/2007scape.json' 
}).then(function success(response) { 
    var mainPost = response; // assigning JSON data here 
    return mainPost; 
}, function error(response) { 
    console.log("No response"); 
}); 

這是我可以做的:

$http({ 
    method: 'GET', 
    url: 'https://www.reddit.com/r/2007scape.json' 
}).then(function success(response) { 
    var json = angular.fromJson(response); // assigning JSON data here 
    return json; 
}, function error(response) { 
    console.log("No response"); 
}); 
+0

'response'應該已經被解析爲數組或對象..不是json字符串 – charlietfl

回答

2

是沒有意義的響應轉換成JSON作爲角做它爲你。從angular documentation of $http

角提供了以下默認變換:

請求轉換$httpProvider.defaults.transformRequest$http.defaults.transformRequest):

如果請求配置對象的數據屬性包含一個對象,序列化它轉換成JSON格式。

響應變換$httpProvider.defaults.transformResponse$http.defaults.transformResponse):

如果檢測XSRF前綴,剝離它(見下面的安全考慮部分)。 如果檢測到JSON響應,請使用JSON解析器對其進行反序列化。