c# - Newtonsoft.Json.Linq.JArray' 键入 'System.Collections.Generic.IEnumerable

标签 c# json asp.net-web-api client

我正在从我的 C# 桌面客户端调用我的 Web API。

这是我在客户端的代码:

public IEnumerable<Model.Print> Get()
{
    var print = new List<Model.Print>();

    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri(Shared.URL);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(Shared.HeaderType));
        var response = client.GetAsync(route + "?" + GeneralTags.CUSTOMER_REF + "=" + new Guid().ToString()).Result;

        if (response.IsSuccessStatusCode)
        {
            string strJson = response.Content.ReadAsStringAsync().Result;
            var jObj2 = (IEnumerable<Model.Print>)JsonConvert.DeserializeObject(strJson);
        }
        else
        {
            evError(new Exception(String.Format("{0}: {1}", (int)response.StatusCode, response.ReasonPhrase)), ErrorTags.PRINT_GET);
        }
    }
    return print;
}

但是我在这一行得到一个错误:

var jObj2 = (IEnumerable<Model.Print>)JsonConvert.DeserializeObject(strJson);

错误是:

'Newtonsoft.Json.Linq.JArray' to type 'System.Collections.Generic.IEnumerable`1[InformedWorkerServer.Model.Print]'.

strJson 包含一个值:

[
  {"PrintId":1,"PrintRef":"00000000-0000-0000-0000-000000000000","Header":"header","TC":"tc","CompanyRef":"00000000-0000-0000-0000-000000000000"},
  {"PrintId":2,"PrintRef":"39a10cee-7cb3-4ed3-aec2-293761eed96d","Header":"header","TC":"tc","CompanyRef":"00000000-0000-0000-0000-000000000000"}]

我错过了什么?

最佳答案

使用 JsonConvert.DeserializeObject<T>相反:

var jObj2 = JsonConvert.DeserializeObject<List<Model.Print>>(strJson);

关于c# - Newtonsoft.Json.Linq.JArray' 键入 'System.Collections.Generic.IEnumerable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33462639/

相关文章:

c# - 不同的 DataContext 错误。为什么这是个问题?

c# - MS Visual Studio IDE 提示

c# - Xamarin.Forms Scrollview 不会滚动

java - 使用 Scanner 在 Java 控制台应用程序中接受用户的格式化 Json(多行)输入(未读取所有行)

json - ASP.NET WebAPI 中的 ContentType application/json

c# - HTML Agility Pack 屏幕抓取 XPATH 未返回数据

python - 如何打印特定的json列表项?

php - ajax获取url参数并查询mysql数据

c# - 如何在 ASP.net Web API 中使用详细参数隐藏/显示结果 JSON

asp.net-mvc - 如何使 web api 中需要 int[] 参数?