У меня есть этот объект JSON, который я десериализовал с помощью C# в переменную, используя соответствующие классы.Как получить JSON Data C# из уложенных объектов
{"cmd": "test","cache": [{"cmd": "test","gw": [{"id": "123456"}],"data": "some_data"}]}
Как я могу получить значение «ID», который находится внутри объекта «гравитационно», который находится внутри «кэш»?
Bellow - это мои классы для десериализации.
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; }
}
EDIT
object model = JsonConvert.DeserializeObject<RootObject>(json);
Если я пытаюсь:
string myID = model.cache[0].gw[0].id;
string myID2 = model.cache.First().gw.First().id;
Я получаю сообщение: 'объект' не содержит определение для 'кэша' и не метод расширения " cache ', принимающий первый аргумент типа' object ', можно найти (вам не хватает директивы использования или ссылки на сборку?)
Работал как очарование! – Rapsoulis
Если у меня есть несколько массивов в кеше, как я могу их подсчитать? – Rapsoulis
Вы можете использовать их так же, как и любой стандартный список, поэтому у вас есть доступ ко всем полям и методам - например, полям _model.cache.Count_ или _model.cache.gw.Count_. Возможно, вы захотите сделать цикл в цикле - foreach (элемент var в файле model.cache) {foreach (var itemGW в item.gw) {Console.WriteLine (itemGW.id); }} –