[英]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.