2015-11-07 116 views
0

我使用C#创建了简单的Web服务,方法是在Visual Studio中创建新站点并添加新的Web服务。我也在IIS8中为它创建了网站,并在那里放置了服务。服务工作正常,并返回XML作为答案,但现在我需要返回JSON格式或甚至更好 - 两种格式可在单独的地址。如何实现这一目标?我应该用web.config文件管理一些东西,还是我必须做一些编码?配置.NET Web服务

web.config文件内容:

<configuration> 
    <system.web> 
     <compilation targetFramework="4.5" /> 
     <httpRuntime targetFramework="4.5" /> 
    </system.web> 

</configuration> 

回答

0

你应该用ScriptMethod属性装饰它改变你的Web方法的响应格式,并与JavaScriptSerializer返回数据。 That文章有一个完整的例子,我会在下面发布它:

public class MyServiceClass 
{ 
    [WebMethod] 
    public Employee[] GetEmployessXML() 
    { 
     Employee[] emps = new Employee[] { 
     new Employee() 
     { 
      Id=101, 
      Name="Nitin", 
      Salary=10000 
     }, 
     new Employee() 
     { 
      Id=102, 
      Name="Dinesh", 
      Salary=100000 
     } 
     }; 
     return emps; 
    } 
    [WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public string GetEmployessJSON() 
    { 
     Employee[] emps = new Employee[] { 
     new Employee() 
     { 
      Id=101, 
      Name="Nitin", 
      Salary=10000 
     }, 
     new Employee() 
     { 
      Id=102, 
      Name="Dinesh", 
      Salary=100000 
     } 
     }; 
     return new JavaScriptSerializer().Serialize(emps); 
    } 
}