0
所以,我有我喜歡使用的API有以下接口聲明JSON回報C#的ServiceContract看起來不同於我期望
namespace MyAPI
{
[ServiceContract(Namespace = "http://MyAPI")]
public interface IMyAPI
{
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "GetSomething?someInt={someInt}", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Dictionary<string, List<string>> GetSomething(int someInt);
}
}
在實施服務合同我像做以下
namespace MyAPI
{
[ServiceBehavior]
public class MyAPI : IMyAPI
{
public Dictionary<string, List<string>> GetSomething(int someInt)
{
Dictionary<string, List<string>> something = new Dictionary<string, List<string>>();
something["FIRST KEY"] = new List<string>();
something["SECOND KEY"] = new List<string>();
// fill up these lists...
return something;
}
}
}
然而,當我去到返回的東西我得到的東西,被格式化這樣
[{"Key":"FIRST KEY","Value":[]},{"Key":"SECOND KEY","Value":[]}]
在那裏我會想到JSON看看下面
{"FIRST KEY":[], "SECOND KEY":[]}
爲什麼兩者之間的區別?我可以序列化成一個字符串,但這似乎是一個額外的(不必要的)步驟。任何幫助非常感謝
是好是壞,'System.Collections.Generic.Dictionary'序列化爲System.Collections.Generic.KeyValuePair 的'陣列'。這就是「爲什麼」;我正在四處尋找解決辦法。 –
使用Json.NET將爲您提供所需的輸出。 – rinukkusu
我認爲這可能是主題? http://stackoverflow.com/a/10368876/424129 –