Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# web api的反序列化_C#_Asp.net_Json_Deserialization - Fatal编程技术网

C# web 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

我试图将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 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类中,因此无法反序列化;