2014-09-03 77 views
0

我正在調用來自ajax調用函數的代碼。 我剛剛創建了一個Post方法,它返回一個列表。 我只想檢查客戶端的值。因此,只需輸出一條警報消息並將response.d作爲參數傳遞。但它返回object,Object而不是實際值。 我想知道獲取值的確切方法嗎?來自ajax調用的函數背後的調用代碼並逐項顯示

[WebMethod] 
     public static List<person> Post() 
     { 
      List<person> List = new List<person>(); 
      person p1 = new person(); 
      p1.name = "Sourav"; 
      p1.surname = "Kayal"; 
      List.Add(p1); 
      person p2 = new person(); 
      p2.name = "Sourav"; 
      p2.surname = "Kayal"; 
      List.Add(p2); 
      return List; 
     } 
    } 
    public class person 
    { 
     public string name { get; set; } 
     public string surname { get; set; } 
    } 


<script> 

    $(document).ready(function() { 

     $.ajax({ 
      type: "POST", 
      url: "JavaScript.aspx/Post", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (response) { 
       var names = response.d; 
       alert(names); 
      }, 
      failure: function (response) { 
       alert(response.d); 
      } 
     }); 
    }); 
</script> 
+0

您需要解析JSON對象獲得值.. – Murtaza 2014-09-03 04:22:12

回答

1

爲了您的jQuery的工作,你將需要系列化你List<person>在C#代碼,以及 -

代替

return List; 添加下面的代碼 -

//Add the below using line on the top of the page where all using directives are present 
using System.Web.Script.Serialization; 


var jsonSerialiser = new JavaScriptSerializer(); 
var json = jsonSerialiser.Serialize(List); 
return json; 

由於您使用jQuery的 - 我們可以使用下面的代碼來解析JSON對象 -

$(document).ready(function() { 
    $.ajax({ 
     type: "POST", 
     url: "JavaScript.aspx/Post", 
     contentType: "application/json; charset=utf-8", 
     dataType: "text", 
     success: function (response) { 
      var obj = jQuery.parseJSON(response); 
      alert(obj.name); 
      alert(obj.surname); 
     }, 
     failure: function (response) { 
      alert(response.d); 
     } 
    }); 
}); 

隨着你的成功的功能這上面的代碼更改,您應該從JSON對象中的值。

編輯基於評論: 下面的線 -

var json = jsonSerialiser.Serialize(List); 

Produces string value of:  
[ 
    {"name":"Sourav","surname":"Kayal"}, 
    {"name":"Sourav","surname":"Kayal"}, 
] 

參考示例的詳細信息 - CLICK HERE

+0

應該是什麼返回類型爲「返回json」? – 2014-09-03 06:10:33

+0

它應該是'string'。 – Murtaza 2014-09-03 06:17:45

+0

在「var obj = jQuery.parseJSON(response);」時出錯 「Microsoft JScript運行時錯誤:無效字符」 使用JQuery版本: 2014-09-03 06:28:10

0

在成功函數中嘗試控制檯日誌記錄(或F12 JavaScript調試)以查看響應對象及其成員。 [對象,對象]應該是JavaScript嘗試將對象(代碼)翻譯爲字符串時失敗。你可能會發現「精確值」的循環,像這樣:

var surnames = [], prop, i; 
    for (item in response) { 
    if (item.hasOwnProperty('surname')) { 
     surnames.push(item.surname); 
    } 
    } 
    // Or 
    for(var i = 0; i < response.length; i++) { 
    if(typeof response[i]['surname'] === 'string') { 
     surnames[i] = response[i]['surname']; 
    } 
    } 
1

嘗試

var names = JSON.parse(response); 
       alert(names.d); 
       alert(names.name); 
       alert(names.surname);