这样我发送我的json数据
这样我构建我的json数据,如下面的
function Post(carousel, first, last, per_page, page) {
var json = "{'Name':'" + $("input[id*='txtName']").val() +
"','Subject':'" + $("input[id*='txtSubject']").val() +
"','Email':'" + $("input[id*='txtEmail']").val() +
"','Message':'" + jQuery.trim($('.message').val()) + "'}";
$.ajax({
type: "POST",
url: "Feedback.aspx/SaveData",
data: json ,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
'here is my success code'
}
});
}
所以我只想知道如何使用c#在服务器端编写代码,这将把我的json数据反序列化为反馈类。
我的反馈类具有相同的属性,如姓名,主题,电子邮件,消息等。请告诉我如何使用反序列化来填充反馈类。
请帮我解决问题。感谢
答案 0 :(得分:4)
你实际上不需要做任何事情。 ASP.NET将为您完成。只需使用适当的参数定义您的方法,它就会自动运行:
[WebMethod]
public static void SaveData(string Name, string Subject, string Email, string Message)
{
// Do something
}
或者既然已经定义了这个类,你只需要在对象周围包装你的javascript字段:
var json = "{'msg':{'Name':'" + $("input[id*='txtName']").val() +
"','Subject':'" + $("input[id*='txtSubject']").val() +
"','Email':'" + $("input[id*='txtEmail']").val() +
"','Message':'" + jQuery.trim($('.message').val()) + "'}}";
[WebMethod]
public static void SaveData(Feedback msg)
{
// Do something
}
答案 1 :(得分:2)
查看以下库:
您可以像这样反序列化JSON:
string json = "{\"Name\":\"name\",\"Subject\":\"subject\",\"Email\":\"email\",\"Message\":\"message\"}";
FeedBack feedBack = Newtonsoft.Json.JsonConvert.DeserializeObject<FeedBack>(json);
...
public class FeedBack
{
public string Name { get; set; }
public string Subject { get; set; }
public string Email { get; set; }
public string Message { get; set; }
}
或者您可以使用内置的.NET Framework JSON序列化程序类:
JavaScriptSerializer serializer = new JavaScriptSerializer();
FeedBack feedBack = serializer.Deserialize<FeedBack>(json);
答案 2 :(得分:2)
答案 3 :(得分:1)
试试这个: 使用System.Web.Script.Serialization;
feedback fb = new feedback ();
fb = JSONSerializer.ConvertFromJSON<feedback>(json);
class JSONSerializer
{
public static string GetJSONString(object data)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(data);
}
public static T ConvertFromJSON<T>(String json)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Deserialize<T>(json);
}
}