繁体   English   中英

SyntaxError:JSON.parse:JSON数据第3行第1列的意外字符

[英]SyntaxError: JSON.parse: unexpected character at line 3 column 1 of the JSON data

因此,我试图通过对Web服务的Jquery Ajax调用返回DataTable,但始终收到错误消息,指出返回的JSON格式不正确。 当我将字符串传递给验证器时,它说没问题,有人知道我在哪里出错吗? 我的代码如下:

 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);
            }
        });

网络服务:

 <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数据的第3行第1列收到错误SyntaxError:JSON.parse:意外字符。

有任何想法吗?

不要进行分类(假设params已经是json)

$.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "/Webservice/LloydsService/getLloydsOverview",
            data: params,
            dataType: "json",
            success: function (data) {
                console.debug("data received Ok?");
                console.log(data);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(textStatus + " -- " + "---" + errorThrown);
            }
        });

在这里摆弄,看看控制台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM