2013-06-21 45 views
0

我想讀出從後面的代碼中的函數給出的JSON數據。我有這樣的設置:無法遍歷通過從後面的代碼給出的JSON對象

後面的代碼:

<WebMethod()> 
Public Shared Function LoadVolgNummer(ByVal EnqDGId As String, ByVal VolgordeId As String) As String 
    Dim oRetValue As EnqueteVraag = Nothing 
    Try 
     oRetValue = EnqueteDetail.LoadQuestion(EnqDGId, VolgordeId) 
    Catch ex As Exception 
     ReportError(ex.Message, GetCurrentMethod.Name) 
    End Try 
    Dim serializer As New JavaScriptSerializer 
    Dim JSON As String = serializer.Serialize(oRetValue).ToArray 
    Return JSON 
End Function 

這是JSON字符串我從我的機能恢復:

{"questionid":1,"question":"De dienstverlening van xxx in het algemeen"} 

JQUERY頁:

$.ajax({ 
     type: "POST", 
     url: "enquete.aspx/LoadVolgNummer", 
     data: JSON.stringify({EnqDGId: '1', VolgordeId: '1'}), 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (msg) { 
      alert(msg.question); 
     }, 
     error:function() { 
      alert('failure in loading volgnummer') 
     } 
    }); 

Enquetevraag等級:

Public Class EnqueteVraag 

Public questionid As Integer 
Public question As String 

結束等級

結果是成功的,但我不能讀出jQuery中的數據。它顯示我'未定義'。任何幫助表示讚賞。

親切的問候

+0

如果響應是如圖所示,'msg.Vraag'應該問題文本。但是請使用lowerCase屬性名稱。理想情況下,用英語。 –

+0

我用英文更新了它。然而,問題是我沒有收到問題文本,但我的警報獲得'未定義'。 JSON字符串即將返回到頁面(返回JSON)。 – Kaizer

+0

什麼'alert(typeof msg);'顯示你? –

回答

1

感謝Felix King和Jan Dvorak的關閉!

JSON.parse(msg.d)。提問

0

嘗試這種情況:

function getQuestions() 
{ 
    var jsonData = $.ajax({ 
     url: "enquete.aspx/LoadVolgNummer", 
     data: JSON.stringify({EnqDGId: '1', VolgordeId: '1'}), 
     dataType: "json", 
     async: false 
    }).responseText; 
    jsonData = JSON.parse(jsonData); 
    alert(jsonData.question); 
}