簡體   English   中英

如何獲取通用字典中的值?

[英]How do I get the value in a generic Dictionary?

我有一個像這樣的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]]}

這樣做的最快(但不安全)方式是通過索引器:

首先提取第一個字典並進行轉換,因為第一個字典將產生一個object類型的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.
}

使用JSON .Net ,然后簡單地:

JObject dynJson = JObject.Parse(jsonString);

其次是:

string data = dynJson["popup"]["position"];

JObject.Parse

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM