簡體   English   中英

通過Jquery Ajax解析C#中的JSON對象

[英]Parse JSON object in c# passed through jquery Ajax

我知道這是ASP.net中最常見的問題之一,但是我的情況有些不同。

我有一個json對象,我將其轉換為字符串並將其通過jquery ajax傳遞給web方法。

function Save() {
            var content = $('#radGridSMT_ctl00 tr').not('#radGridSMT_ctl00 thead tr');
            var header = $('#radGridSMT_ctl00_Header thead tr');
            var result = [];
            for (var i = 0; i < content.length - 1; i++) {
                item = {}
                var headerName;
                item[header[0].children[0].textContent] = content[i].children[0].textContent;
                item[header[0].children[1].textContent] = content[i].children[1].textContent;
                item[header[0].children[2].textContent] = content[i].children[2].textContent;
                item[header[0].children[3].textContent] = content[i].children[3].textContent;
                item[header[0].children[4].textContent] = content[i].children[4].textContent;
                item[header[0].children[5].textContent] = content[i].children[5].textContent;
                item[header[0].children[6].textContent] = content[i].children[6].textContent;
                item[header[0].children[7].textContent] = content[i].children[7].textContent;
                item[header[0].children[8].textContent] = content[i].children[8].textContent;
                item[header[0].children[9].textContent] = content[i].children[9].textContent;
                item[header[0].children[10].textContent] = content[i].children[10].textContent;
                item[header[0].children[11].textContent] = content[i].children[11].textContent;
                item[header[0].children[12].textContent] = content[i].children[12].textContent;
                result.push(item);
            }
            result = JSON.stringify({ data: result });
            $.ajax({
                type: "POST",
                url: "SMTRequiredHour.aspx/SaveData",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                data: result,
                success: function (response) {

                },
                failure: function (response) {

                }
            });
        }

現在,當我在Web方法中收到它時,它是以對象的形式出現的。

    [WebMethod]
    public static void SaveData(object data)
    {
        CreateDatatable(data);
        var d = initialData;
        var obj = JsonConvert.DeserializeObject(data);
    }

JsonConvert.DeserializeObject接受字符串而不是對象,這就是問題所在。 我無法將JSON對象轉換為字符串。

我無法創建強類型對象,因為json對象中的列是動態生成的,並且每次可能都不相同。

如何將JSON對象解析為字符串,以便可以反序列化它。

data.ToString()返回什么?

如果無法解決問題,請嘗試從JavaScript端將其作為文本發送。 您可以使用data: JSON.stringify(result),然后在Web方法中將數據類型設置為string。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM