System.Collections.Generic.Dictionary:如何访问其成员

时间:2013-04-29 12:05:05

标签: .net json deserialization

我正在学习,我有来自jSON格式的REST API的响应,并且正在收到名为filters

的字符串中的回复

我想要做的是反序列化它以便我可以使用jSON中包含的数据..这就是我正在做的事情

JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
var deserializedJson = jsSerializer.DeserializeObject(filters);

现在问题是它正在运作,但我不知道如何进一步利用它......

我调试了反序列化语句以找到以下结果

enter image description here

它说我的reult对象是{System.Collections.Generic.Dictionary<string,object>}类型

enter image description here

该怎么做...我需要提取property : Makevalue : Honda

正在发送jSON ..这就是filters sting [{"property":"Make","value":"Honda"}]

中的内容

2 个答案:

答案 0 :(得分:1)

首先,您需要将返回的对象强制转换为Dictionary,如下所示:

var deserializedJson = jsSerialize.DeserializeObject(filters);
var dictionary = (Dictionary<string,object>)deserializedJson;

现在,您可以按键访问任何属性:

object prop = dictionary["property"];
object make = dictionary["value"];

请注意,“prop”和“make”是对象变量,但我怀疑底层类型是一个字符串。所以你可以在两个属性上调用.ToString()并将它们转换为字符串。

答案 1 :(得分:0)

另一种选择如下,

dynamic deserializedJson = jsSerialize.DeserializeObject(filters);
object prop = deserializedJson["property"];
object make = deserializedJson["value"];