2017-04-21 97 views
-4

我正在嘗試開發一個使用離子框架和php的移動應用程序。我的問題是我必須顯示所有註冊用戶。我的php代碼將返回id和名稱作爲Json數組。我想收到數組中的格式如下Json對JS數組的響應

var profiles = [{ 
    id: 0, 
    name: 'aaa', 
  
  }, { 
    id: 1, 
    name: 'bbb', 
    
  }, { 
    id: 2, 
    name: 'ccc', 
  
  }];    

我嘗試下面的代碼,它不工作

var profiles = [     { 
        str="http://localhost:8888/webapp/api.php?"; 
            var data = { 
                  
                sta : "userdetails" 
        }; 
        $http.post(str,data) 
        .success(function (response){ 
            return angular.fromJson(response); 
              
     }} 
   )];  

回答

0

首先,我可以看到您嘗試從response直接讀取JSON,這實際上是JSON對象(不是JSON字符串)。角度響應對象有一些屬性。在此處查看更多內容https://docs.angularjs.org/api/ng/service/ $ http/

此外,請確保服務器響應實際上是有效的JSON字符串http://jsonlint.com/。有可能您的響應可能是JSON對象,因此您可以直接從response.data直接訪問您的響應。

有效的JSON字符串是:

"[{"id":0,"name":"aaa"},{"id":1,"name":"bbb"},{"id":2,"name":"ccc"}]" 

如果你的反應是一個有效的JSON字符串您可以使用angular.fromJson(response.data)或只是JSON.parse(response.data) [1]讓你你需要的數據。

[1] 使用JSON.parse而不是使用angular的函數會更好,因爲您沒有使用javascript native函數將代碼綁定到任何框架。因此,如果您需要重新使用這部分代碼或重寫應用程序,則不必重寫此部分。;)