所以即時通訊嘗試通過JQuery Ajax調用返回DataTable到web服務,但不斷收到錯誤,返回的JSON格式不正確。當我將字符串傳遞給驗證器時,它說它很好,任何人都知道我會在哪裏出錯? 我的代碼如下:SyntaxError:JSON.parse:JSON數據的第3行第1列的意外字符
var params = new Object();
params.centreId = 0;
params.brcWeek = 0;
params.brcMonth = 0;
params.brcYear = 0;
params.weekOffSet = 0;
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Webservice/LloydsService/getLloydsOverview",
data: JSON.stringify(params),
dataType: "json",
success: function (data) {
console.debug("data received Ok?");
console.log(data);
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus + " -- " + "---" + errorThrown);
}
});
Web服務:
<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
Public Function getLloydsOverview(ByVal centreId As Integer, ByVal brcWeek As Integer, ByVal brcMonth As Integer, ByVal brcYear As Integer, ByVal weekOffSet As Integer) As String
Dim dt As New DataTable()
Dim serializer As JavaScriptSerializer = New JavaScriptSerializer()
Using conn As SqlClient.SqlConnection = GetDBConnection()
Using cmd As SqlClient.SqlCommand = conn.CreateCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "sp_LloydsDashboard_Overview"
cmd.Parameters.AddWithValue("@CentreId", centreId)
cmd.Parameters.AddWithValue("@BRCWeek", brcWeek)
cmd.Parameters.AddWithValue("@BRCMonth", brcMonth)
cmd.Parameters.AddWithValue("@BRCYear", brcYear)
cmd.Parameters.AddWithValue("@WeekOffSet", weekOffSet)
Using DA As New SqlDataAdapter(cmd)
conn.Open()
DA.Fill(dt)
Dim rows As New List(Of Dictionary(Of String, Object))()
Dim row As Dictionary(Of String, Object)
For Each dr As DataRow In dt.Rows
row = New Dictionary(Of String, Object)()
For Each col As DataColumn In dt.Columns
row.Add(col.ColumnName, dr(col))
Next
rows.Add(row)
Next
Dim json As String = serializer.Serialize(rows)
Return json
End Using
End Using
End Using
End Function
返回這個(這驗證):
[{"WalkedPast":1000,"PeelOff":0.1,"WalkedIn":100}]
,但我仍然得到錯誤語法錯誤:JSON.parse: JSON數據第3行第1列的意外字符。
任何任何想法?
摘掉「網絡服務」。這不相關。 – 2014-08-31 13:35:41
究竟是什麼給你的語法錯誤? Web服務或JavaScript處理響應(聽起來像是後者,但明確無誤)?處理JSON的代碼行是拋出錯誤? – Quentin 2014-08-31 13:37:07
來自ajax調用的響應直接返回錯誤 - errorthrown顯示帶有錯誤引發測試的警報框SyntaxError:JSON.parse:JSON數據第3行第1列的意外字符 – 2014-08-31 13:41:58