2017-02-23 56 views
-1

我有這個JSON對象,我已經使用C#反序列化爲使用適當的類的變量。如何從堆疊的對象獲取JSON數據C#

{"cmd": "test","cache": [{"cmd": "test","gw": [{"id": "123456"}],"data": "some_data"}]} 

我怎樣才能得到在「緩存」內的「gw」對象內的「id」的值?

貝婁是我反序列化的類。

public class Gw 
{ 
    public string id { get; set; } 
} 

public class Cache 
{ 
    public string cmd { get; set; } 
    public List<Gw> gw { get; set; } 
    public string data { get; set; } 
} 

public class RootObject 
{ 
    public string cmd { get; set; } 
    public List<Cache> cache { get; set; } 
} 

編輯

object model = JsonConvert.DeserializeObject<RootObject>(json); 

如果我嘗試:

string myID = model.cache[0].gw[0].id; 
string myID2 = model.cache.First().gw.First().id; 

我得到這個消息: '對象' 不包含 '緩存',並沒有擴展方法「的定義。緩存「接受類型'對象'的第一個參數可以找到(你是否缺少使用指令或程序集引用?)

回答

0
RootObject model = JsonConvert.DeserializeObject<RootObject>(text); 
string myID = model.cache[0].gw[0].id; 
+0

工作就像一個魅力! – Rapsoulis

+0

如果我在緩存中有多個數組,我將如何能夠對它們進行計數? – Rapsoulis

+0

您可以像使用任何標準列表一樣使用它們,因此您可以訪問所有字段和方法 - 例如_model.cache.Count_或_model.cache.gw.Count_字段。你可能想在循環中做一個循環 - foreach(model.cache中的var item){foreach(item.gw中的var itemGW){Console.WriteLine(itemGW.id); }} –