簡體   English   中英

數組 Json C# 中的反序列化問題

[英]Array Json Deserialization Issues in C#

string uri = Application.Current.Properties["Uri"].ToString();
var client = new HttpClient();
var result = await client.GetAsync(uri + "/products");
var resultparsing = JsonConvert.DeserializeObject<ProductResponse>(await 
result.Content.ReadAsStringAsync());
var list = JsonConvert.DeserializeObject<List<Item>>(resultparsing.products.ToString());

代碼運行時,當結果解析僅傳遞 object 名稱時,反序列化問題來自 listtostring,在這種情況下,它只是說它是一個列表,而不是在嘗試獲取項目時將列表本身傳遞給 var 列表。

public class Item
    {
        public string _id { get; set; }
        public string name { get; set; }
        public string location { get; set; }
    }
    public class ProductResponse
    {
        public string count { get; set; }
        public List<Item> products { get; set; }
    }

最初被捕獲的 Json 的示例

{"count":2,"products":[{"name":"item","location":"storeroom","_id":"6219602068c9a900043fe844"},{"name":"item2","location":"storeroom","_id":"6219603768c9a900043fe850"}]}

你只需要反序列化一次

var json = await result.Content.ReadAsStringAsync();
var resp = JsonConvert.DeserializeObject<ProductResponse>(json);

respProductResponse object,它應該包含products屬性中的所有產品詳細信息。 您不需要單獨反序列化產品

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM