使用c# . net制作JSON web服务

本文关键字:web 服务 JSON 制作 net 使用 | 更新日期: 2023-09-27 18:15:58

我正在尝试在c# . net中制作JSON web服务。json字符串通过web方法返回,但它包含xml结构,如:

  <string xmlns="http://tempuri.org/">
  {"checkrecord":[{"rollno":"abc2","percentage":40,"attended":12,"missed":34}],"Table1":[]}
  </string> 

我以前看过这篇文章,但对我没有多大帮助。

所以我的问题是,json字符串不返回其纯格式。我不想要xml版本和xmlns字符串。我打算以后在Android上使用web服务。

有人能帮我吗?

谢谢

使用c# . net制作JSON web服务

如果你用请求和响应格式的属性装饰你的接口,你可以得到标准的WCF返回和解释正确的json。

    [WebGet(UriTemplate = "user/{userid}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]

问题是,然而,WCF固有的DataContractJsonSerializer并不总是返回正确的json。它对字典的序列化充其量是有问题的,因为它被序列化为键/值对列表。为了解决这个问题,必须从服务方法返回Stream并手工进行序列化(使用Json)。. NET或ServiceStack来执行序列化)。在这种情况下,使用WebAPI可能是明智的,但在某些情况下,可以使用上述装饰来使用常规的WCF。

您可以尝试使用REST Api构建您的服务。您可以在此链接

找到有关REST与WCF的信息。

您可以下载该工具包,获取如何构建restful wcf服务返回json响应的示例。

如果您计划创建REST服务,那么WCF Web API值得学习。它很容易通过Nuget安装,或者从Codeplex

这也不是一个问题,当使用ServiceStack,即每一个结果你返回get的自动转换为响应内容类型你想要的,即这是一个简单的web服务的完整代码,可以通过所有的HTTP动词(get,POST,PUT,DELETE)在所有支持的格式(不需要配置),即JSON, XML, HTML, JSV, CSV, SOAP甚至通过一个直接的HTML表单调用x-www-form-urlencoded或QueryString请求:

public class Hello {
    public string Name { get; set; }
}
public class HelloResponse {
    public string Result { get; set; }
}
public class HelloService : IService<Hello> {
    public object Execute(Hello request)
    {
        return new HelloResponse { Result = "Hello, " + request.Name };
    }
}

你可以覆盖你得到的响应与Accept:application/json HTTP头或简单地添加?format=json上的QueryString.

请参阅ServiceStack的Hello World示例,以查看上述web服务的实时示例。

更改

的返回方法
        Context.Response.Write(ans);
        Context.Response.End();