Перечислитель отсутствует в классе JSON

Я пытаюсь десериализовать этот json. Но у меня есть несколько проблем, в частности, компилятор говорит мне, что:

RootObject не содержит общедоступного определения для GetEnumerator.

Это класс, созданный с помощью json2csharp:

 public class Self
    {
        public string href { get; set; }
    }

    public class Fixtures
    {
        public string href { get; set; }
    }

    public class Players
    {
        public string href { get; set; }
    }

    public class Links
    {
        public Self self { get; set; }
        public Fixtures fixtures { get; set; }
        public Players players { get; set; }
    }

    public class RootObject
    {
        public Links _links { get; set; }
        public string name { get; set; }
        public string code { get; set; }
        public string shortName { get; set; }
        public string squadMarketValue { get; set; }
        public string crestUrl { get; set; }
    }

и это мой код:

var obj = JsonConvert.DeserializeObject<RootObject>(responseText);

            foreach (var item in obj)
            {
                item.name //... this is an example of the attribute that I want grab from the JSON for each team    
            }

Мне нужно перебрать все команды и сохранить их в базе данных.

Вот структура JSON, если она может чем-то помочь:

{
"_links":{
"self":{
"href":"http://api.football-data.org/alpha/teams/19"
},
"fixtures":{
"href":"http://api.football-data.org/alpha/teams/19/fixtures"
},
"players":{
"href":"http://api.football-data.org/alpha/teams/19/players"
}
},
"name":"Eintracht Frankfurt",
"code":"SGE",
"shortName":"Eintr. Frankfurt",
"squadMarketValue":"69,050,000 €",
"crestUrl":"http://upload.wikimedia.org/wikipedia/commons/0/04/Eintracht_Frankfurt_Logo.svg"
}

person Harold Finch    schedule 02.07.2015    source источник
comment
Сообщение совершенно ясно, ваш объект не перечислим.   -  person Yuval Itzchakov    schedule 02.07.2015
comment
Это один объект. Каких именно действий вы ожидаете от foreach()? Вы можете использовать obj.name, если хотите прочитать имя. Он содержит только одно имя.   -  person CodeCaster    schedule 02.07.2015
comment
Можете ли вы показать мне, пожалуйста, как перебрать этот json из захвата всех значений? Я хочу получить (ссылку, имя, код, короткое имя, teamMarketValue, crestUrl) для каждой команды.   -  person Harold Finch    schedule 02.07.2015
comment
@HaroldFinch, ваш json представляет только одну команду. Вы не написали, как вы получаете этот json, поэтому помочь невозможно. Вы делаете вызов HTTP или читаете его из базы данных? Вы вызываете какой-то API? Вы проверили документацию, чтобы узнать, как получить данные для многих команд? Мы даже не догадываемся, как делать такие вещи   -  person Panagiotis Kanavos    schedule 02.07.2015


Ответы (1)


var obj = JsonConvert.DeserializeObject<RootObject>(responseText);

вернет один единственный RootObject, а не набор объектов.

Я думаю, что проблема заключается в вашем вызове API. В этом случае вы делаете запрос, который возвращает одну команду (Айнтрахт Франкфурт).

Вместо этого вы хотите сделать вызов, который возвращает список команд.

person A.Game    schedule 02.07.2015