c# – Newtonsoft.Json.Linq.JArray’输入’System.Collections.
发布时间:2020-12-15 23:47:12 所属栏目:百科 来源:网络整理
导读:我从我的C#桌面客户端调用我的web api. 这是我在客户端的代码: public IEnumerableModel.Print Get(){ var print = new ListModel.Print(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(Shared.URL); client.DefaultRequestHead
我从我的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","CompanyRef":"00000000-0000-0000-0000-000000000000"}] 我错过了什么? 解决方法
使用JsonConvert.DeserializeObject< T>代替:
var jObj2 = JsonConvert.DeserializeObject<List<Model.Print>>(strJson); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |