Web服务应该返回json

我需要我的Web服务才能返回JSON …

我的.asmx文件中有以下代码:

namespace Feed { [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] [System.Web.Script.Services.ScriptService] public class searchPerson : System.Web.Services.WebService { [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public Person GetDave() { Person dave = new Person(); dave.FirstName = "Dave"; dave.LastName = "Ward"; return dave; } } } 

返回以下内容:

   Dave Ward  

如何强制它返回JSON而不是XML?

您的Web服务定义看起来正确。 确保您通过post调用服务,并记住该键将“内容类型”标题指定为application/json

(这是使用jQuery但你可以使用低级javascript,如果你喜欢)

 $.ajax({ type: "POST", contentType: "application/json; charset=utf-8;", url: "http://MyWebServiceURL", data: JSON.stringify({ ParameterName: "DataToSend" }), dataType: "json", success: function (data, textStatus, jqXHR) { //do something }, error: function (jqXHR, textStatus, errorThrown) { //fail nicely } }); 

在开始之前添加以下参考:

 using System.Web.Script.Services; using System.Web.Script.Serialization; 

在您的方法中使用以下代码,将任何数据转换为JSON数据格式:

 JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(empData); 

empData是DataTable的DataRows数组。