C# web api的反序列化
我试图将JSON解析到ListView中,但它给了我反序列化错误。 这是我的模型-它与api的键相同:C# web api的反序列化,c#,asp.net,json,deserialization,C#,Asp.net,Json,Deserialization,我试图将JSON解析到ListView中,但它给了我反序列化错误。 这是我的模型-它与api的键相同: public class Currency { public string Drzava { get; set; } public int Sifra_valute { get; set; } public string Drzava_iso { get; set; } public int Jedinica { get; set; } public d
public class Currency
{
public string Drzava { get; set; }
public int Sifra_valute { get; set; }
public string Drzava_iso { get; set; }
public int Jedinica { get; set; }
public double Kupovni_tecaj { get; set; }
public double Srednji_tecaj { get; set; }
public double Prodajni_tecaj { get; set; }
}
这是我的货币清单:
public class CurrencyTable
{
public List<Currency> Results { get; set; }
}
公共类电流表
{
公共列表结果{get;set;}
}
用于与Listview绑定的类:
public class ShowCurrency
{
static ShowCurrency() {
using (var webClient = new WebClient())
{
String rawJSON =
webClient.DownloadString("http://api.hnb.hr/tecajn/v2/");
CurrencyTable currencyTable =
JsonConvert.DeserializeObject<CurrencyTable>(rawJSON);
}
}
private static List<Currency> currencies;
public static List<Currency> Currencies { get; set; }
public static List<Currency> GetCurrencies() {
return Currencies;
}
}
公共类ShowCurrency
{
静态ShowCurrency(){
使用(var webClient=new webClient())
{
字符串rawJSON=
webClient.DownloadString(“http://api.hnb.hr/tecajn/v2/");
可兑换可兑换可兑换可兑换=
反序列化对象(rawJSON);
}
}
私有静态列表货币;
公共静态列表货币{get;set;}
公共静态列表getCurrences(){
返回货币;
}
}
我得到的错误是:CurrencyTable CurrencyTable=
反序列化对象(rawJSON)
这就是api的外观:
web服务响应正文以以下文本开头:
[{"broj_tecajnice":"85","datum_primjene":"2019-05-...
注意它是如何以[
开头的,这意味着它直接返回一个JSON数组作为其根对象,并且它没有返回一个名为Results
的成员的对象(也就是说,它没有返回{Results:[{“broj_tecajnice”…},{…}]}
将代码更改为:
List<Currency> list = JsonConvert.DeserializeObject<List<Currency>>( rawJSON );
CurrencyTable currencyTable = new CurrencyTable()
{
Results = list
};
List List=JsonConvert.DeserializeObject(rawJSON);
CurrencyTable CurrencyTable=新的CurrencyTable()
{
结果=列表
};
那么rawJSON是什么样子的呢?edit:nevermind,看起来您可以在提供的链接上查看json。请将json添加到问题中。您的json结构与您试图将其反序列化为的类的属性不匹配。例如,您的json有一个对象列表。该列表中的每个对象都有一个名为“broj_tecajnice”,但是此属性不在Currency类中,因此无法反序列化;