2013-02-20 89 views
12
到字典

我收到以下JSON結果INT響應:反序列化JSON與DataContractJsonSerializer

{"result": { "":-41.41, "ABC":0.07, "XYZ":0.00, "Test":0.00 }} 

我已經準備了下面的類deserializating:

[DataContract] 
public sealed class RpcResponse 
{ 
    [DataMember(Name = "result")] 
    public List<KeyValuePair<string, decimal>> Result { get; set; } 
} 

但是當我特林使用DataContractJsonSerializer將其反序列化,Result屬性以零條目結束。 (在宣佈ResultDictionary<string, decimal>時也不起作用)

有沒有辦法與DataContractJsonSerializer一起執行此操作?

回答

0

您的JSON字符串表示具有屬性的對象結果本身是具有4個屬性的對象:「」,ABC,XYZ和Test。對於結果爲KeyValuePairs的列表中,JSON是這樣的:

{"result": [{ "":-41.41}, {"ABC":0.07}, {"XYZ":0.00}, {"Test":0.00 }] } 

請注意,如果您使用的是JavaScript代碼的關聯數組,它是要被序列化與屬性值的對象配對,而不是一組對象。如果這是JSON字符串的來源,則可能需要切換到在JS中使用普通索引數組才能獲得正確的JSON。

+0

我不在任何地方使用JavaScript,也無法更改結果的格式。 – Regent 2013-02-20 14:00:14