[英]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.