簡體   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