2013-02-20 112 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

相关问题