C#プログラムに少し問題があります。それはC#の私の最初のプログラムですので、どうかお許しください。C#オブジェクトに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"})に変更するか、またはデシリアライズされた型をArrayやListなどのコレクションインターフェイス(ICollection、IListなど)を実装する型に変更します。 JSON配列からデシリアライズできます。 JsonArrayAttributeを型に追加して、強制的にJSON配列から逆シリアル化することもできます。あなたのエラーメッセージとして パス ''、行1、位置1
ちょうどこのCurrencyCodeValuesメートル= JsonConvert.DeserializeObject(結果)を書き込みます。 –