无法将 JSON 数组(例如 [1,2,3])反序列化为类型“ ”,因为类型需要 JSON 对象(例如 {“name”:“value”})才能正确反序列化
Cannot deserialize the JSON array (e.g. [1,2,3]) into type ' ' because type requires JSON object (e.g. {“name”:“value”}) to deserialize correctly
嗨,我正在尝试从 api 下载数据,然后尝试对其进行一些 linq,但我什至无法正常显示它。
动态类型工作得很好,但我不能用它使用 linq
我正在使用这个 api
http://api.nbp.pl/api/exchangerates/tables/a/?format=json
我的 class 在 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);
我只能看到 class 路径
要正确表示提供的 link 返回的 json,您可以使用 Class1
的数组,而不是 Rootobject
:
var Data = Newtonsoft.Json.JsonConvert.DeserializeObject<Class1[]>(text);
嗨,我正在尝试从 api 下载数据,然后尝试对其进行一些 linq,但我什至无法正常显示它。 动态类型工作得很好,但我不能用它使用 linq
我正在使用这个 api http://api.nbp.pl/api/exchangerates/tables/a/?format=json
我的 class 在 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);
我只能看到 class 路径
要正确表示提供的 link 返回的 json,您可以使用 Class1
的数组,而不是 Rootobject
:
var Data = Newtonsoft.Json.JsonConvert.DeserializeObject<Class1[]>(text);