使用DataContractJsonSerializer将JSON反序列化为Dictionary
我在响应中收到以下JSON结果:
{"result": { "":-41.41, "ABC":0.07, "XYZ":0.00, "Test":0.00 }}
我准备了以下用于反序列化的课程:
[DataContract] public sealed class RpcResponse { [DataMember(Name = "result")] public List<KeyValuePair> Result { get; set; } }
但是,当我要使用DataContractJsonSerializer
对其进行反序列化时, Result
属性最终为零条目。 (在将Result
声明为Dictionary
时也不起作用)
有没有办法用DataContractJsonSerializer
执行此操作?
您的JSON字符串表示具有属性Result的对象,该属性本身是具有4个属性的对象:“”,ABC,XYZ和Test。 为了得到KeyValuePairs的列表,JSON看起来像这样:
{"result": [{ "":-41.41}, {"ABC":0.07}, {"XYZ":0.00}, {"Test":0.00 }] }
请注意,如果您在Javascript代码中使用关联数组,那么它将被序列化为具有属性 – 值对的对象,而不是对象数组。 如果这是JSON字符串的源,您可能需要切换到使用JS中的普通索引数组来获取正确的JSON。