簡體   English   中英

我如何解析來自asmx的http響應對象

[英]how do I parse the http response object coming from 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);
}

這是我從回應中得到的

對象d:“ [{” empId“:103,” fname“:” sujith“,” city“:” trichy“,” mobile“:” 56456456“,” country“:” India“}]”“ 原型 :對象

如何解析有角js對象。 我想這樣訪問: $scop.Employee.empId,$scope.Employee.fname

感謝和問候阿倫

您確定接收到的對象以“”(雙引號)開頭和結尾嗎?

更改以下行

$scope.Employee = response.data;

$scope.Employee = response.data.d[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 = response.data.d[0];
    console.log($scope.Employee.fname);
    console.log($scope.Employee); }, function (response) {
    console.log(response.status);
    console.log(response.statusText); });

}

  $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

謝謝Vikas Thakur,Abhijeet Jaiswal,它幫助我解決了它,現在它可以正常工作了,在asmx webservice webmethod中有什么錯誤,我應該以字符串形式返回Employee對象,以前我錯誤地將其添加到列表中並返回了列表。 webmethod的返回類型為字符串,因此無法解析。 現在它正在解析。 謝謝你們倆幫助了我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM