我正在学习,我有来自jSON格式的REST API的响应,并且正在收到名为filters
我想要做的是反序列化它以便我可以使用jSON中包含的数据..这就是我正在做的事情
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
var deserializedJson = jsSerializer.DeserializeObject(filters);
现在问题是它正在运作,但我不知道如何进一步利用它......
我调试了反序列化语句以找到以下结果
它说我的reult对象是{System.Collections.Generic.Dictionary<string,object>}
类型
该怎么做...我需要提取property : Make
和value : Honda
正在发送jSON ..这就是filters
sting [{"property":"Make","value":"Honda"}]
答案 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"];