Добрый день! Подключаюсь к API, ответ оттуда приходит только в формате Json. Чтобы вытащить все, что нужно, пишу Linq. При отладке процесса получаю ошибку на select new. Текст ошибки: "Значение было недопустимо малым или недопустимо большим для Int32". Подскажите, пожалуйста, в чем проблема? Как это можно исправить? JObject dic = JObject.Parse (sr.ReadToEnd ()); // LINQ To JSON (парсинг ответа) var example = from c in dic ["fines"].Children() select new { enable_discount = c["enable_discount"].Value<bool>(), date_discount = c["date_discount"].Value<string>(), date_decision = c["date_decision"].Value<string>(), ... };
1. Одно из значений анонимного типа который создаете путем select new имеет тип int и прилетевшее из json значение не может быть приведено к нему, т..е искать строку вида c["xxx"].Value<int>() и смотреть что в json там приезжает. 2. Вручную парсить json можно, но эффективнее парсить при помощи готовых библиотек, например включенного в ELMA Newtonsoft json, там есть методы позволяющие в одну строку десериализовать json в объект нужного типа
Огромное спасибо! Ошибку нашла. А вот десериализовать json в объект нужного типа в прошлый раз не получилось, поэтому и стала парсить вручную, попробую еще раз.