我在响应中收到以下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; }
}
但是当我想用DataContractJsonSerializer
反序列化它时,Result
属性最终没有条目。 (将Result
声明为Dictionary<string, decimal>
)
有没有办法用DataContractJsonSerializer
执行此操作?
答案 0 :(得分:0)
您的JSON字符串表示具有属性Result的对象,该属性本身是具有4个属性的对象:“”,ABC,XYZ和Test。为了得到KeyValuePairs的列表,JSON看起来像这样:
{"result": [{ "":-41.41}, {"ABC":0.07}, {"XYZ":0.00}, {"Test":0.00 }] }
请注意,如果您在Javascript代码中使用关联数组,那么它将被序列化为具有属性 - 值对的对象,而不是对象数组。如果这是JSON字符串的来源,您可能需要切换到使用JS中的普通索引数组来获取正确的JSON。