1

我正在学习,我收到了来自 JSON 格式的 REST API 的响应,并且它在名为的字符串中收到filters

我要做的是反序列化它,以便我可以使用 JSON 中包含的数据。这就是我正在做的

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

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

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

在此处输入图像描述

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

在此处输入图像描述

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

有正在发送的json ..这就是filters刺痛[{"property":"Make","value":"Honda"}]

4

2 回答 2

2

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

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

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

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

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

于 2013-04-29T18:21:00.313 回答
0

另一种选择如下,

dynamic deserializedJson = jsSerialize.DeserializeObject(filters);
object prop = deserializedJson["property"];
object make = deserializedJson["value"];
于 2014-09-25T07:08:26.017 回答