无法将 JSON 数组(例如 [1,2,3])反序列化为类型,因为类型需要 JSON 对象(例如 {"name":"value"})才能正确反序列化



hi我试图从api下载数据,然后在上面尝试一些linq,但我甚至无法正常显示它。动态类型可以正常工作,但我不能将linq与一起使用

im使用这个apihttp://api.nbp.pl/api/exchangerates/tables/a/?format=json

我在c#上的课

public class Rootobject
{
public Class1[] Property1 { get; set; }
}
public class Class1
{
public string table { get; set; }
public string no { get; set; }
public string effectiveDate { get; set; }
public Rate[] rates { get; set; }
}
public class Rate
{
public string currency { get; set; }
public string code { get; set; }
public float mid { get; set; }
}

要反序列化的代码:

using (WebClient client = new WebClient())
{
String text = Encoding.UTF8.GetString(client.DownloadData("http://api.nbp.pl/api/exchangerates/tables/a/?format=json"));
var Data = Newtonsoft.Json.JsonConvert.DeserializeObject<Rootobject>(text);
Debug.WriteLine(Data);
}

当我把它放在数组或列表中时(像这样(

var Data = Newtonsoft.Json.JsonConvert.DeserializeObject<Rootobject[]>(text);

我只能看到类路径

要正确表示所提供链接返回的json,可以使用Class1数组,而不是Rootobject:

var Data = Newtonsoft.Json.JsonConvert.DeserializeObject<Class1[]>(text);

相关内容

  • 没有找到相关文章

最新更新