簡體   English   中英

使用C#.NET制作JSON Web服務

[英]Making of JSON Webservice using C# .NET

我正在嘗試在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上使用網絡服務。

誰能幫我?

謝謝

如果使用請求和響應格式的屬性裝飾接口,則可以獲得標准WCF以返回並解釋正確的json。

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

但問題是,WCF的先天DataContractJsonSerializer並不總是返回正確的json。 它的字典序列化充其量是有問題的,因為它被序列化為鍵/值對的列表。 要解決此問題,必須從服務方法返回Stream並手動執行序列化(使用Json.NET或ServiceStack執行序列化)。 在這種情況下,建議使用WebAPI,但在某些情況下,可以使用上述裝飾來使用常規WCF。

您可以嘗試使用REST Api構建服務。 您可以在此鏈接中找到有關使用WCF的REST的信息

您可以下載有關如何構建返回json響應的restful wcf服務的示例工具包。

如果您計划創建REST服務,則值得學習WCF Web API 它可以通過Nuget或Codeplex輕松安裝

使用ServiceStack時這也不是問題,即您返回的每個結果都會自動轉換為您想要的Response ContentType,即這是可以通過所有HTTP VERBS調用的簡單Web服務的完整代碼(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 Header獲得的響應,或者只是在QueryString上添加?format = json

請參閱ServiceStack的Hello World示例以查看上述Web服務的實例。

改變方法的回報

        Context.Response.Write(ans);
        Context.Response.End();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM