[英]WCF Service parse JSON as Dictionary<string,string>()
我有一整套WCF Web服務,它們接收POST JSON對象並以其他JSON格式的數據進行回復。
在服務中的一種特定方法中,我試圖通過JSON對象並將其解析為Dictionary()。
該方法的接口定義為:
[OperationContract(Name = "GetSomeData")]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
string GetSomeData(AuthenticationData authData, Dictionary<string, string> options, string srcHash);
方法聲明本身是:
public string GetSomeData(AuthenticationData authData, Dictionary<string,string> options, string srcHash)
{
// do something fancy
}
authData和srcHash是所有方法上的標准參數,並且包含正確解析為authData的AuthenticationData對象的預期數據。
對於聲明的對象和基元,其他方法都可以正常工作,但是Dictionary始終為空。
通過發送的JSON字符串是:
"{\"options\",{\"id\":\"1\"}}"
為什么不將其解析為字典?
我最終放棄了這一點,創建了一個List類來模擬字典。
[Serializable]
public class JSONDictionary
{
[DataMember] public string _key;
[DataMember] public string _value;
}
然后在客戶端(JavaScript):
client.utils.toJSONDictionary = function (obj)
{
var dictionary = [];
for (member in obj)
{
dictionary.push({ _key: member, _value: obj[member].toString() });
}
return dictionary;
}
那很好。 在c#中使用適當的字典會很好,但是...嗯,您不可能擁有一切。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.