Ошибка чтения JSON.Net

Я пытаюсь разобрать некоторые данные JSON с Json.Net. Вот мои данные:

[
    {
        "UIDClan": "1",
        "UIDKnjiga": "1",
        "Naslov": "Title1",
        "DatumZaKada": "2013-08-09 00:00:00",
        "DatumIstekRez": null,
        "Spremno": "0"
    },
    {
        "UIDClan": "1",
        "UIDKnjiga": "2",
        "Naslov": "Title2",
        "DatumZaKada": "2013-08-08 00:00:00",
        "DatumIstekRez": null,
        "Spremno": "0"
    },
    {
        "UIDClan": "1",
        "UIDKnjiga": "3",
        "Naslov": "Title3",
        "DatumZaKada": "2013-08-09 00:00:00",
        "DatumIstekRez": "2013-10-09 00:00:00",
        "Spremno": "1"
    }
]

С помощью этого фрагмента кода я хочу извлечь данные UIDClan:

 JObject o = JObject.Parse(s);

 Console.WriteLine(o["UIDClan"]);

Ошибка

Ошибка чтения JObject из JsonReader. Текущий элемент JsonReader не является объектом: StartArray. Путь '', строка 1, позиция 1.

Я проверил с JSONLint и это действительно.

Примеры, которые я нашел, не начинаются с [.

Я что-то делаю неправильно?

Ответ 1

Вы можете попробовать использовать JArray. Эти данные JSON представляют собой массив.

JArray v = JArray.Parse(s);

Чтобы получить первый элемент.

var firstItem = v[0]["UIDClan"].ToString();

Вы даже можете использовать linq

var items = v.Where(x =>  x["UIDClan"].ToString() == "1").ToList();

Ответ 2

Чтобы преодолеть ошибку plz, выполните сериализацию jsonstring в нижнем формате. Эта строка сериализации мы можем разобрать как Jobject

Newtonsoft.Json.JsonConvert.SerializeObject(new {JsonString})