如何从堆叠的对象获取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;
工作就像一个魅力! – Rapsoulis
如果我在缓存中有多个数组,我将如何能够对它们进行计数? – Rapsoulis
您可以像使用任何标准列表一样使用它们,因此您可以访问所有字段和方法 - 例如_model.cache.Count_或_model.cache.gw.Count_字段。你可能想在循环中做一个循环 - foreach(model.cache中的var item){foreach(item.gw中的var itemGW){Console.WriteLine(itemGW.id); }} –