2017-09-11 7 views
0

comment puis-je analyser l'objet de réponse HTTP provenant asmx

$scope.Edit = function (id) { 
 
console.log("edit id : " + id); 
 
$scope.Employee = {}; 
 
$scope.eid = id; 
 
var data = JSON.stringify({empid: $scope.eid}); 
 
var url = "/services/EmployeeService.asmx/EditEmployee"; 
 
$http.post(url, data).then(function (response) { 
 
    $scope.Employee = response.data; 
 
    console.log($scope.Employee.fname); 
 
    console.log($scope.Employee); 
 
    var mydata = jQuery.parseJSON(JSON.stringify(response.data)); 
 
    console.log(mydata); 
 
}, function (response) { 
 
    console.log(response.status); 
 
    console.log(response.statusText); 
 
}); 
 

 
}

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public string EditEmployee(int empid) 
{ 
    Employee employee = new Employee(); 
    if (emplist.Count > 0) 
    { 
     foreach (Employee emp in emplist) 
     { 
      if (emp.empId == empid) 
      { 
       employee.empId = empid; 
       employee.fname = emp.fname; 
       employee.city = emp.city; 
       employee.mobile = emp.mobile; 
       employee.country = emp.country; 
       break; 
      } 
     } 
    } 
    JavaScriptSerializer js = new JavaScriptSerializer(); 
    Context.Response.Clear(); 
    Context.Response.ContentType = "application/json"; 
    List<Employee> elist = new List<Employee>(); 
    elist.Add(employee); 
    return new JavaScriptSerializer().Serialize(elist); 
} 

C'est que je suis de la réponse

objet d: "[{" EMPID ": 103, "fname": "sujith", "ville": "trichy", "mobile": "56456456", "pays": "Inde"}] " proto: Objet

comment j'analyse un objet js angulaire. Je veux accéder à ceci: $scop.Employee.empId,$scope.Employee.fname

Merci & Cordialement arun

Répondre

0

Changer la ligne suivante

$scope.Employee = response.data; 

avec

$scope.Employee = response.data.d[0]; 
+0

Salut Vikas Thakur, merci de votre aide, mais il revient encore undefined, –

+0

$ scope.Employee = response.data.d [0]; console.log ($ scope.Employee.fname); // Renvoie undefined –

+1

console.log (response.data.d); // return [{"empId": 103, "fname": "sujith", "ville": "trichy", "mobile": "56456456", "pays": "Inde"}] console.log (réponse .data.d [0]); // Renvoie [ –

1

Etes-vous sûr que l'objet que vous recevez est commençant et se terminant par "" (guillemets doubles)

0

Essayez ceci. Cela devrait fonctionner:

$scope.Edit = function (id) { console.log("edit id : " + id); $scope.Employee = {}; $scope.eid = id; var data = JSON.stringify({empid: $scope.eid}); var url = "/services/EmployeeService.asmx/EditEmployee"; $http.post(url, data).then(function (response) { 
    $scope.Employee = response.data.d[0]; 
    console.log($scope.Employee.fname); 
    console.log($scope.Employee); }, function (response) { 
    console.log(response.status); 
    console.log(response.statusText); }); 

} 
0

$scope.Edit = function (id) { 
 
         console.log("edit id : " + id); 
 
         $scope.Employee = {}; 
 
         $scope.eid = id; 
 
         var data = JSON.stringify({ empid: $scope.eid }); 
 
         var url = "/services/EmployeeService.asmx/EditEmployee"; 
 
         $http.post(url, data).then(function (response) { 
 
          $scope.Employee = JSON.parse(response.data.d); 
 
          console.log("empid: " + $scope.Employee.empId); 
 
          console.log("fname: " + $scope.Employee.fname); 
 
          console.log("city: " + $scope.Employee.city); 
 
          console.log("country: " + $scope.Employee.country);       
 
                
 
         }, function (response) { 
 
          console.log(response.status); 
 
          console.log(response.statusText); 
 
         }); 
 
          
 
        }

enter code here 
[WebMethod] 
     [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
     public string EditEmployee(int empid) 
     { 
      Employee employee = new Employee(); 
      if (emplist.Count > 0) 
      { 
       foreach (Employee emp in emplist) 
       { 
        if (emp.empId == empid) 
        { 
         employee.empId = empid; 
         employee.fname = emp.fname; 
         employee.city = emp.city; 
         employee.mobile = emp.mobile; 
         employee.country = emp.country; 
         break; 
        } 
       } 
      }   
      return new JavaScriptSerializer().Serialize(employee); 
     } 
enter code here 

merci Vikas Thakur, Abhijeet Jaiswal, il m'a aidé à résoudre, maintenant il travaille, quelle erreur est asmx webservice webmethod Je devrais renvoyer l'objet Employé sous forme de chaîne, précédemment je l'ajoute incorrectement à la liste et retourne la liste. le type de retour webmethod est une chaîne donc ce n'est pas l'analyse. maintenant c'est l'analyse. Merci à vous deux m'a aidé.

+0

Marquez l'une des réponses acceptées. Cela aiderait d'autres qui sont dans une situation similaire –

+0

J'ai déjà marqué accepté votre réponse, il dit la réputation de plus de 15 peut être acceptée –