Ошибка чтения 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})