2013-03-07 93 views
0

我從jquery調用webmethod並獲取json對象,但我無法解析和讀取json對象。請幫我看看我做錯了什麼。我有3個警報(),我把他們旁邊的意見,他們展示一下...jquery asp.net無法解析json對象

我jQuery代碼是這樣的

$('#btn_second').click(function() { 
      //$('#txt_isim_4').val('test arif'); 
      $.ajax({ 
       type: "POST", 
       url: "Registration.aspx/get_selected_professional", 
       data: "{'id':'2'}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (data) { 
        alert('1:' + data); // display [object Object] 
        alert('2:' + data.d.firstname); // display undefined 
        alert('3:' + data.d); // display [{"id":"2","firstname":"arif"}] 
       } 
      }); 
     }); 

,但我只想顯示「阿里夫」。我的JSON對象是否錯誤?我應該使用單引號嗎?

謝謝

回答

1

你有數組,使用索引,還可以使用大括號中的數據,使對象。

Live Demo

更改JSON字符串

[{"id":"2","firstname":"arif"}] 

使用數組下標索引來訪問其元素

data.d[0].id 
+0

又該我用呢? – 2013-03-07 12:27:59

+0

它不工作...它顯示未定義... – 2013-03-07 12:29:39

+0

我已更新我的回答 – Adil 2013-03-07 12:33:31

0

你只需要你解析數據:

var result = jQuery.parseJSON(data.d); 
alert(result[0].Id); 
0

假設你webmethod是這樣的:

public string get_selected_professional(string id) 
{ 
    List<MyClass> requiredData= GetRequiredData(id); 
    //your required logic 

    //string requiredData= "[{\"id\":\"2\",\"firstname\":\"arif\"}]"; 
    //return requiredData; 

    //or 

    return new JavascriptSerializer().Serialize(requiredData); 
} 

其中MyClass

public class MyClass 
{ 
    public int id {get;set;} 
    public string firstname{get;set;} 
} 

,那麼你應該在客戶端做你的Ajax :success內:

success: function (data) { 
        var jsonData =$.parseJSON(data); 
        alert('1:' + jsonData); // display [object Object] 
        alert('2:' + jsonData.d.firstname); // display undefined 
        alert('3:' + jsonData.d);    
    }