Добрый день! Пытаюсь разобрать Json ответ от API на классы итд. Классы сгенерировал на jsonutils.com
Скопировал в проект, прописал:
var fb = new WebClient() {Encoding = System.Text.Encoding.UTF8}.DownloadString(URI);
var list = JsonConvert.DeserializeObject<List<Example>>(fb);
Получаю следующее:
Newtonsoft.Json.JsonSerializationException: Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[chat.Example]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.
To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.
Подскажите пожалуйста как решить проблему? Спасибо заранее!
JSON - ignn.ru/t/messages.json
Вот, нашёл свой старый проект и сделал под вашу задачу. Делал на коленке, так что не ругайте сильно)
static void Main(string[] args)
{
WebClient client = new WebClient();
var str = client.DownloadString("http://ignn.ru/t/messages.json");
str = str.Insert(0, "[");
str = str.Insert(str.Length, "]");
var json = JsonConvert.DeserializeObject<RootObject[]>(str);
foreach (var rootObject in json)
{
Console.WriteLine(rootObject.start);
Console.WriteLine("------------");
Console.WriteLine(rootObject.chunk.First());
Console.WriteLine("------------");
Console.WriteLine(rootObject.end);
Console.WriteLine("------------");
}
Console.ReadLine();
}
public class Unsigned
{
public int age { get; set; }
}
public class Content
{
public string body { get; set; }
public string msgtype { get; set; }
}
public class Chunk
{
public object origin_server_ts { get; set; }
public string sender { get; set; }
public string event_id { get; set; }
public int age { get; set; }
public Unsigned unsigned { get; set; }
public Content content { get; set; }
public string room_id { get; set; }
public string user_id { get; set; }
public string type { get; set; }
}
public class RootObject
{
public string start { get; set; }
public List<Chunk> chunk { get; set; }
public string end { get; set; }
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть 2 пкНа одном установлен MSSQL, на другом стоит программа(написанная на C#) на котором нету MSSQL
Например в консоли есть символ "#" в координатах (0,0) как узнать что там символ "#" ,а не "?"
Не могу протестировать метод из за того что класс Row является составной частью чужой библиотеки