首页 / 脚本样式 / Ajax / Ajax与Wcf交互-JSON
Ajax与Wcf交互-JSON2010-07-21 cnblogs jillzhang在WCF的序列化中有DataContractJsonSerializer的格式化器,这就使得WCF相比传统的Xml Web Serice多了一种输入输出的编码格式:JSON.本文将介绍如何使用JSON实现Ajax与WCF之间的数据交互.JSON的全称是JavaScript Object Notation,是专门用于适应Ajax和Restful而出现的取代xml的编码格式.相比xml而言,它更适合javascript,第一步: 在VS2008中创建一个.Net framework 3.5的网站项目,命名为AjaxWcfJson,不用多说,不会创建的可以参考上一篇文章Ajax与WCF交互-WCF之美,第二步: 在网站项目中添加一个启用了Ajax的WCF服务: WcfJsonService.svc,将其中代码更改为如下:[DataContract]
public class Person
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Address { get; set;}
}
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class WcfJsonService
{
static List<Person> list = new List<Person>();
// 添加 [WebGet] 属性以使用 HTTP GET
[OperationContract]
[WebInvoke(RequestFormat = WebMessageFormat.Json)]
public bool CreatePerson(Person p)
{
// 在此处添加操作实现
foreach (Person person in list)
{
if (p.Name ==person.Name)
{
return false;
}
}
list.Add(p);
Trace.WriteLine("-----------------------------------------");
foreach (Person person in list)
{
Trace.WriteLine("Name:" + person.Name + ",Address:" + person.Address);
}
Trace.WriteLine("-----------------------------------------");
return true;
}
[OperationContract]
[WebInvoke(ResponseFormat=WebMessageFormat.Json)]
public Person GetPerson(string name)
{
foreach(Person p in list)
{
if(p.Name == name)
{
return p;
}
}
return new Person();
}
// 在此处添加更多操作并使用 [OperationContract] 标记它们
}