C# 使用DataContractJsonSerializer将JSON反序列化到字典

C# 使用DataContractJsonSerializer将JSON反序列化到字典,c#,.net,json,serialization,.net-4.5,C#,.net,Json,Serialization,.net 4.5,我在响应中收到以下JSON结果: {"result": { "":-41.41, "ABC":0.07, "XYZ":0.00, "Test":0.00 }} 我为反序列化准备了以下类: [DataContract] public sealed class RpcResponse { [DataMember(Name = "result")] public List<KeyValuePair<string, decimal>> Result { get;

我在响应中收到以下JSON结果:

{"result": { "":-41.41, "ABC":0.07, "XYZ":0.00, "Test":0.00 }}
我为反序列化准备了以下类:

[DataContract]
public sealed class RpcResponse
{
    [DataMember(Name = "result")]
    public List<KeyValuePair<string, decimal>> Result { get; set; }
}
[DataContract]
公共密封类RPR应答器
{
[DataMember(Name=“result”)]
公共列表结果{get;set;}
}
但是,当我尝试使用
DataContractJsonSerializer
对其进行反序列化时,
Result
属性的结果是没有条目。(将
结果
声明为
字典
时也不起作用)


有没有一种方法可以使用
DataContractJsonSerializer
执行此操作?

您的JSON字符串表示一个具有属性结果的对象,该属性结果本身就是一个具有4个属性的对象:“、ABC、XYZ和Test”。如果结果是KeyValuePairs的列表,JSON将如下所示:

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

请注意,如果在Javascript代码中使用关联数组,它将被序列化为具有属性-值对的对象,而不是对象数组。如果这是JSON字符串的来源,您可能需要切换到使用JS中的普通索引数组来获得正确的JSON。

我在任何地方都不使用JavaScript,而且我也不能更改结果的格式。