我有一个json
字符串,如下所示:
{
"ipaddress": "xxx",
"hostname": "comcast.xxx",
"popup": {
"position": "1256",
"pagename": "home"
}
}
在我的Windows窗体代码中,我一直在使用JavaScriptSerializer
来查找那些到字典的行。
var obj = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(json);
目前工作正常,但我不知道如何在popup
内获得价值?因为它是另一本字典。
[7] = {[popup, System.Collections.Generic.Dictionary`2[System.String,System.Object]]}
答案 0 :(得分:3)
最快(但不安全)的做法就是通过索引器:
首先提取第一个字典并进行转换,因为第一个字典将产生object
类型的对象:
var popup = (Dictionary<string, object>)obj["popup"];
然后,您根据键提取值:
var position = popup["position"];
var pagename = popup["pagename"];
如果您不确定结果中是否存在这两个键,则可以使用Dictionary.TryGetValue
(如果存在):
obj position;
if (!popup.TryGetValue("position", out position))
{
// Key isn't in the dictionary.
}
答案 1 :(得分:1)
使用JSON .Net,然后只需:
JObject dynJson = JObject.Parse(jsonString);
接下来是:
string data = dynJson["popup"]["position"];