[英]How to parse JSON string for List of List of anonymous object which contains List of objects?
我一直在嘗試使用 Newtonsoft 的 Json 庫將以下 JSON 字符串反序列化為 model ,但沒有這樣做。 json 字符串如下:-
[
[
{
"events": [
{
"d": "Dec 2019 Final",
"e": "Released 5 Mar 2020"
}
]
}
],
[
{
"events": [
{
"d": "Some String",
"e": "Some Other string"
}
]
}
]
]
我嘗試通過使用 Visual Studio 內部工具 json 到 C#(特殊粘貼)創建其 model 來做到這一點。 還嘗試使用 QuickTypes.io 創建模型,但到目前為止沒有任何效果。
我能做的最好的是將 api 響應解析為List<List<object>>
然后通過迭代其鍵和值手動獲取值,這是我完全想避免的。 有沒有更好的方法來處理這些數據?
我希望我能正確理解你的問題。如果你想堅持使用匿名類型,你可以使用JsonConvert.DeserializeAnonymousType
來達到目的。
var innerAnonymousType = new {d=string.Empty,e=string.Empty};
var innerAnnonymousTypeList = CreateList(innerAnonymousType);
var outerAnonymousType = CreateList(new {events = innerAnnonymousTypeList});
var result = JsonConvert.DeserializeAnonymousType(json, CreateList(outerAnonymousType));
其中 CreateList 定義為
public static List<T> CreateList<T>(params T[] elements)
{
return new List<T>(elements);
}
使用 JsonConvert.DeserializeAnonymousType
Output樣品
您可以使用基礎 model 並解析您的 json:
public class BaseClass
{
public List<EventModel> Events { get; set; }
}
public class EventModel
{
[JsonProperty(PropertyName = "d")]
public string Date { get; set; }
[JsonProperty(PropertyName = "e")]
public string Event { get; set; }
}
對於反序列化 json 到 model 使用這個:
var model = JsonConvert.DeserializeObject<List<List<BaseClass>>>("your json");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.