所以即时通讯尝试通过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