У меня есть небольшая проблема с программой C#. Это моя первая программа на C#, поэтому, пожалуйста, прощайте :)C# Deserialize JSON для объекта
Я хотел бы десериализовать свой json-файл в объект, но я не знаю, как должен строиться мой класс. Я использую Newtonsoft JSON lib.
JSON файл:
http://api.nbp.pl/api/exchangerates/tables/A/last/?format=json
Form1.cs:
private void button1_Click(object sender, EventArgs e)
{
CurrencyCodeValues k = new CurrencyCodeValues();
WebClient myWebClient = new WebClient();
dynamic result = myWebClient.DownloadString("http://api.nbp.pl/api/exchangerates/tables/A/last/?format=json");
IList<CurrencyCodeValues> m = JsonConvert.DeserializeObject<CurrencyCodeValues>(result);
}
Class1.cs:
сообщениеclass CurrencyCodeValues
{
public string table { get; set; }
public string no { get; set; }
public string effectiveDate { get; set; }
public List<rates_> rates { get; set; }
}
public class rates_
{
public string currency { get; set; }
public string code { get; set; }
public float mid { get; set; }
}
Ошибки:
Не может десериализации текущего массива JSON (например, [1,2,3]) в тип «WindowsFormsApplication4.CurrencyCodeValues», потому что для десериализации корректно требуется тип JSON (например, {«name»: «value»}). Чтобы исправить эту ошибку, либо смените JSON на объект JSON (например, {"name": "value"}), либо измените десериализованный тип на массив или тип, реализующий интерфейс коллекции (например, ICollection, IList), например List, можно десериализовать из массива JSON. JsonArrayAttribute также может быть добавлен к типу, чтобы заставить его десериализоваться из массива JSON. Путь '', строка 1, позиция 1.
Просто написать эту CurrencyCodeValues м = JsonConvert.DeserializeObject (результат); –