[英]can not deserialize json list
這是我郵遞員的JSON
結果
{
"result": [
{
"brands": [],
"services": [],
"addresses": [],
"accessPoints": [],
"Kodu": "100",
"name": "üeticissdss",
"taxNumber": "asd",
"taxOffice": "sada",
"id": "bfb064f4-0732-43ab-9d94-87f6934258fe",
"isActive": true
},
{
"brands": [],
"services": [],
"addresses": [],
"accessPoints": [],
"Kodu": "100",
"name": "üeticissdss",
"taxNumber": "asd",
"taxOffice": "sada",
"id": "bfb064f4-0732-43ab-9d94-87f69d4258fe",
"isActive": true
}
],
"id": 13,
"exception": null,
"status": 5,
"isCanceled": false,
"isCompleted": true,
"isCompletedSuccessfully": true,
"creationOptions": 0,
"asyncState": null,
"isFaulted": false
}
我試圖反序列化json,如下所示:
[BindProperty]
public List<Manufacturer> manufacturer { get; set; }
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri(apiParameters.HttpClientBaseAddress);
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(apiParameters.DefaultRequestHeadersJson));
customIndexModel.ApiResponseMessage = await httpClient.GetAsync(apiParameters.HttpClientBaseAddress);
if (customIndexModel.ApiResponseMessage.IsSuccessStatusCode)
{
var jsonAsString = customIndexModel.ApiResponseMessage.Content.ReadAsStringAsync().Result;
manufacturer = JsonConvert.DeserializeObject<List<Manufacturer>>(jsonAsString);
}
錯誤消息:
無法反序列化當前JSON對象(例如{“ name”:“ value”})為類型'System.Collections.Generic.List`1 [Q.Entity.Manufacturer.Manufacturer]',因為該類型需要JSON數組(例如[ 1,2,3])正確反序列化。 要解決此錯誤,可以將JSON更改為JSON數組(例如[1,2,3]),也可以更改反序列化類型,使其成為普通的.NET類型(例如,不像整數這樣的原始類型,也不像這樣的集合類型)數組或列表),可以從JSON對象反序列化。 還可以將JsonObjectAttribute添加到類型中,以強制其從JSON對象反序列化。 路徑“結果”,第1行,位置10。
看起來我想念某些東西,但我不知道。 請問你能幫幫我嗎 ?
這是從http://json2csharp.com/生成的de c#類
public class Result
{
public List<object> brands { get; set; }
public List<object> services { get; set; }
public List<object> addresses { get; set; }
public List<object> accessPoints { get; set; }
public string Kodu { get; set; }
public string name { get; set; }
public string taxNumber { get; set; }
public string taxOffice { get; set; }
public string id { get; set; }
public bool isActive { get; set; }
}
public class RootObject
{
public List<Result> result { get; set; }
public int id { get; set; }
public object exception { get; set; }
public int status { get; set; }
public bool isCanceled { get; set; }
public bool isCompleted { get; set; }
public bool isCompletedSuccessfully { get; set; }
public int creationOptions { get; set; }
public object asyncState { get; set; }
public bool isFaulted { get; set; }
}
我將JSON反序列化為dataList
[BindProperty]
public RootObject dataList { get; set; }
var jsonAsString = customIndexModel.ApiResponseMessage.Content.ReadAsStringAsync().Result;
dataList = JsonConvert.DeserializeObject<RootObject>(jsonAsString);
JSOn反序列化后,我可以在Razor頁面中使用結果,如下所示
@foreach (var item in Model.dataList.result)
{
++rowNumber;
<tr>
<td>@item.code</td>
<td>@item.name</td>
<td>@item.isActive</td>
</
謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.