2011-08-26 39 views
0

我有一些非常簡單的json時間,希望有人可以提供幫助。我有一個非常基本的VB.NET webform,它用JavaScriptSerializer寫出了一個數據表的內容。jQuery.ajax,json和vb.net javascriptserialize

 Using conn As New SqlConnection(connStr) 
     Using command As New SqlCommand("select * from stategeopositions", conn) 
      conn.Open() 
      Using reader As SqlDataReader = command.ExecuteReader() 
       dt.TableName = "states" 
       dt.Load(reader) 
       conn.Close() 
      End Using 
     End Using 
    End Using 

    Dim objs As New List(Of Dictionary(Of String, Object)) 
    For Each row As DataRow In dt.Rows 
     Dim drow As New Dictionary(Of String, Object) 
     For i As Integer = 0 To dt.Columns.Count - 1 
      drow.Add(dt.Columns(i).ColumnName, row(i)) 
     Next 
     objs.Add(drow) 
    Next 

    Dim d As New Dictionary(Of String, Object) 
    d.Add(dt.TableName, objs) 

    Dim serialier As New JavaScriptSerializer 

    Response.Write(serialier.Serialize(d)) 

在jquery方面,我正在這樣做。

  $.ajax({ 
      type: "GET", 
      url: 'StateGeoPositions.aspx', 
      async: false, 
      beforeSend: function (x) { 
       if (x && x.overrideMimeType) { 
        x.overrideMimeType("application/j-son;charset=UTF-8"); 
       } 
      }, 
      dataType: "json", 
      success: function (data) { 
       alert(data); 
       //do your stuff with the JSON data 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert(xhr.status); 
       alert(thrownError); 
      } 
     }); 

這被返回 「無效JSON」

這裏是輸出

{ 「狀態」:[{ 「狀態」: 「阿拉斯加」, 「縮寫」: 「AK」,」緯度 「:61.370717,」 東經 「: - 152.404420,」 小 「:空},{」 狀態 「:」 阿拉巴馬 「 」縮寫「: 」AL「, 」緯度「:32.806673, 」東經「: - 86.791133」小 「:空},{」 狀態 「:」 阿肯色州 「 」縮寫「: 」AR「, 」緯度「:34.969705, 」東經「: - 92.373124, 」小「:空},{ 」狀態「:」 亞利桑那州」, 「縮寫」: 「AZ」, 「緯度」:33.729761, 「東經」: - 111.431224, 「小」:空},{ 「狀態」: 「加州」, 「縮寫」: 「CA」, 「緯度」 :36.116203, 「東經」: - 119.68156 3, 「小」:空},{ 「狀態」: 「科羅拉多」, 「縮寫」: 「CO」, 「緯度」:39.059810, 「經度」: - 105.311105, 「小」:空},{ 「狀態」 :「康涅狄格州」,「縮寫」:「CT」,「緯度」:38.272689,「經度」: - 71.367188,「小」:真},....

謝謝您的任何幫助.. 。

+0

請提供您所有的JSON輸出作爲已包含了什麼是目前有效的語法。 – RobB

+0

對不起,我不確定你的意思?這只是它的結尾。這裏有1條記錄。我在頁面加載中使用Reponse.Write(..) {「」:[{「state」:「Alaska」,「abbreviation」:「AK」,「latitude」:61.370717,「longitude 「:-152.404420,」small「:false}]} – AndySousa

回答

0

您應該能夠使用速記功能,$.getJSON(),在這種情況下:

var url = 'StateGeoPositions.aspx'; 

$.getJSON(url, function(data){ 
    alert(data); 
}); 
+0

這還沒有返回...... json輸出看起來是否正確?什麼是領先的「州」標籤? – AndySousa

+0

我發現了這個問題......我把HTML body標籤留在aspx文件中。我將這個文件清理乾淨,並能夠正常工作。 感謝大家的幫忙 – AndySousa