我有一個C#程序的小問題。這是我在C#中的第一個程序 - 請原諒:)C#反序列化JSON到對象
我想將我的json文件反序列化爲對象,但我不知道我的類應該如何構建。我使用Newtonsoft JSON庫。
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(結果); –