Проблемы с Json C#

Знаю что есть куча подобных вопросов, но к сожалению не смог на их примере исправить ошибку у меня.

Выбрал json файл в качестве формата для хранения введенных данных пользователем. он выглядит след. образом:

[{"login": "", "password": "", "steam_id": "", "in_list": "", "api_key": ""}, {"login": "", "password": "", "steam_id": "", "in_list": "", "api_key": ""}]

Внутри "" лежат данные соответственно и таких элементов много(в примере оставил 2)

Классы с описанием элементов:

namespace Controll_prjct
{

    public class Rootobject
    {
        public Class1[] Property1 { get; set; }
    }

    public class Class1
    {
        public string login { get; set; }
        public string password { get; set; }
        public string steam_id { get; set; }
        public string in_list { get; set; }
        public string api_key { get; set; }
    }

}

То как я пытаюсь достать данные из json файла:

string jsonFile = File.ReadAllText(@"path to file");

Class1 data = JsonConvert.DeserializeObject<Class1>(jsonFile);
Console.WriteLine(data);

Ну и ошибка соответственно:

Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Elysium_prjct.Class1' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path '', line 1, position 1."

Я и мои мешки под глазами будем очень благодарны если поможете исправить ошибку!

Если еще объясните почему, то отдельный поклон.


Ответы (2 шт):

Автор решения: rotabor
Rootobject data = JsonConvert.DeserializeObject<Rootobject>(jsonFile);
→ Ссылка
Автор решения: Ansver

Поскольку в JSON файле находится массив объектов попробуйте изменить свой код десереализации на следующий:

List<Class1> data = JsonConvert.DeserializeObject<List<Class1>>(jsonFile);

Для вывода элементов массива можете воспользоваться циклом в данном случае вполне подойдет foreach:

foreach(var element in data)
{
    Console.WriteLine(element);
}

По-умолчанию метод ToString() у типа List выводит название типа. Поэтому лучше выводить поэлементно. При этом в классе Class1 необходимо будет переопределить метод ToString(). Ещё как вариант в цикле выводить все поля отдельно, т. е. Console.WriteLine(element.login);

Надеюсь это поможет.

→ Ссылка