如何从堆叠的对象获取JSON数据C#

问题描述:

我有这个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; 

我得到这个消息: '对象' 不包含 '缓存',并没有扩展方法“的定义。缓存“接受类型'对象'的第一个参数可以找到(你是否缺少使用指令或程序集引用?)

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); }} –