ajax、json一些整理(1)
1。请求text数据,在success事件中手动解析
前台:
$.ajax({
type: "post",
url: "checkFile.ashx",
data: { "filename": "2" },
dataType: "text",
success: function (data) {
var json = eval('(' + data + ')');
alert(json.Age);
}
});
后台处理:
HttpResponse res = context.Response;
HttpRequest req = context.Request;
string code = req["filename"];
string jsonString = "{\"Age\":28,\"Name\":\"张三\"}";
//string jsonString = "{'Age':23,'Name':'abc'}";
if (code != null)
{
res.Write(jsonString);
res.ContentType = "text/plain";
res.End();
}
在这种情况下,单引号分割和转移双引号分割,都可以。
2.请求json格式数据,jquery自动解析
前台:
$.ajax({
type: "post",
url: "checkFile.ashx",
data: { "filename": "3" },
// contentType:"application/json",----------在ajax请求ashx文件的json数据时,此属性不能被指定,而在请求webservices时,是必须指定的。
dataType: "json",
success: function (data) {
alert(data.Name);
}
});
后台处理:
HttpResponse res = context.Response;
HttpRequest req = context.Request;
string code = req["filename"];
string jsonString = "{\"Age\":28,\"Name\":\"张三\"}";
if (code != null)
{
res.Write(jsonString);
res.ContentType = "text/plain";
res.End();
}
在这种情况下,只有转移双引号分割,才可以在前台被jquery方法自动解析。
3.带序列化的text数据前台解析
前台:
$.ajax({
type: "post",
url: "checkFile.ashx",
data: { "filename": "2" },
dataType: "text",
success: function (data) {
$("p").text(data);
var json = eval('(' + data + ')');
alert(json.Name);
}
});
json数据内容: {"Name":"zhangsan","Code":111,"Birthday":"\/Date(649666800000)\/"}
后台处理:
HttpResponse res = context.Response;
HttpRequest req = context.Request;
string code = req["filename"];
Student stu = new Student {
Name="zhangsan",
Code=111,
Birthday=Convert.ToDateTime("1990-8-3")
};
JavaScriptSerializer serializer=new JavaScriptSerializer();
string jsonString = serializer.Serialize(stu);
json数据内容: "{\"Name\":\"zhangsan\",\"Code\":111,\"Birthday\":\"\\/Date(649666800000)\\/\"}"
if (code != null)
{
res.Write(jsonString);
res.ContentType = "text/plain";
res.End();
}
[Serializable]
public class Student
{
public string Name { get; set; }
public int Code { get; set; }
public DateTime Birthday { get; set; }
}
4.带序列化的json 前台自动解析:
前台:
$.ajax({
type: "post",
url: "checkFile.ashx",
data: { "filename": "3" },
dataType: "json",--------------只要指定此处就可以,后台处理同上。
success: function (data) {
alert(data.Name);
}
});