我目前正在開發一個應用程式,想獲取一些門票資料。為此,我使用 HttpClient 和 get 方法連接到 api。通過打開頁面,我得到以下例外:
Newtonsoft.Json.JsonSerializationException: '無法將當前 JSON 物件(例如 {"name":"value"})反序列化為型別 'System.Collections.Generic.List`1[App.Models.Ticket]' 因為該型別需要一個JSON 陣列(例如 [1,2,3])以正確反序列化。要修復此錯誤,請將 JSON 更改為 JSON 陣列(例如 [1,2,3])或更改反序列化型別,使其成為普通的 .NET 型別(例如,不是像整數這樣的原始型別,而不是像這樣的集合型別)可以從 JSON 物件反序列化的陣列或串列)。還可以將 JsonObjectAttribute 添加到型別以強制它從 JSON 物件反序列化。路徑“id”,第 1 行,位置 6。
你知道解決辦法嗎?是的,我插入了一個 URL。
票務.cs
public class Ticket
{
public string id { get; set; }
public string message { get; set; }
public List<string> notes { get; set; }
public string status { get; set; }
public string subject { get; set; }
}
加載票
public async void LoadTickets()
{
var content = "";
HttpClient client = new HttpClient();
var RestURL = "https://...";
client.BaseAddress = new Uri(RestURL);
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync(RestURL);
content = await response.Content.ReadAsStringAsync();
var Items = JsonConvert.DeserializeObject<List<Ticket>>(content);
ListViewTicket.ItemsSource = Items;
}
應用程式介面
{
"id": "1",
"status": "closed",
"subject": "Ger?tefehler -21 bei SAP App",
"message": "Beim Starten der SAP App kommt immer ein Fehler -21. Was muss ich machen?",
"notes": [
"Vielen Dank für Ihre Anfrage. Es wurde das Ticket 1 für Sie er?ffnet",
"Das ist ein eher kurzer Kommentar auf das Ticket.",
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet",
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."
]
}
connection: keep-alive
content-type: application/json
date: Mon03 Jan 2022 15:08:36 GMT
keep-alive: timeout=20
transfer-encoding: chunked
uj5u.com熱心網友回復:
你的 api 中只有一項,所以試試這個
Ticket item = JsonConvert.DeserializeObject<Ticket>(content);
或者您可以將其轉換為串列
List<Ticket> items= new List<Ticket>{item};
ListViewTicket.ItemsSource = Items;
或更改您的 Api 以回傳串列而不是一項
[
{
"id": "1",
"status": "closed",
"subject": "Ger?tefehler -21 bei SAP App",
"message": "Beim Starten der SAP App kommt immer ein Fehler -21. Was muss ich machen?",
"notes": [
"Vielen Dank für Ihre Anfrage. Es wurde das Ticket 1 für Sie er?ffnet",
"Das ist ein eher kurzer Kommentar auf das Ticket.",
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet",
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."
]
}
]
如果你的意思是筆記而不是你可以得到它們
List<string> notes = JsonConvert.DeserializeObject<Ticket>(content).notes;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/403359.html
標籤:
上一篇:拆分json資料python
下一篇:合并具有重復鍵的json陣列
