2017-09-11 6 views
0

가 어떻게 ASMX에서 오는 HTTP 응답 객체를 구문 분석 할

$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); 
 
}); 
 

 
}

이 내가 응답

객체 D에서 가져온 것입니다

[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); 
} 

: "[{"EMPID " 103, "fname": "sujith", "city": "trichy", "mobile": "56456456", "country": "India"}] " proto : 개체

각도 js 객체는 어떻게 파싱합니까? 나는이 같은 액세스하려면 : $scop.Employee.empId,$scope.Employee.fname

감사 & 감사 룬

답변

0

변경 다음 줄

$scope.Employee = response.data; 

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

안녕 Vikas Thakur, 도와 줘서 고맙지 만 여전히 정의되지 않은 반환, –

+0

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

+1

console.log (response.data.d); // return [{ "empId": 103, "fname": "sujith", "city": "trichy", "mobile": "56456456", "country": "India"} console.log (응답 .data.d [0]); // return [ –

1

당신이 받고있는 개체가 있는지 확인 있습니까 ""(큰 따옴표)로 시작하고 끝남

0

시도해보십시오. 이 작동합니다 :

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 

$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); 
 
         }); 
 
          
 
        }
, 그것은 그것을 해결에 절 도와 줬어요, 카스 타쿠, Abhijeet Jaiswal 지금이 작동 감사합니다, ASMX의 웹 서비스에의 WebMethod에 어떤 실수 Employee 객체를 문자열로 반환해야합니다. 이전에 잘못 목록에 추가하고 목록을 반환했습니다. webmethod 반환 형식은 문자열이므로 구문 분석하지 않습니다. 이제 구문 분석 중입니다. 둘 다 도와 줘서 고마워.

+0

답변 중 하나를 수락하십시오. 이것은 비슷한 상황에 처한 다른 사람들을 도울 것입니다 –

+0

나는 이미 당신의 대답을 받아 들였습니다. 그 이상의 명성은 받아 들여질 수 있다고 말합니다. –