[英]Newtonsoft.Json Deserialize Collection
第三方供應商擁有我正在使用的一系列端點,它們具有以下結構:
[
{
"Id" : 117,
"Name" : "Example"
},
{
"Id" : 118,
"Name" : "Sample"
},
]
我創建了一個對象結構:
public class RootObject<TType>
{
public TType[] ApiModels { get; set; }
}
public class Sample
{
public int Id { get; set; }
public string Name { get; set; }
}
但是當我去反序列化時,我會做:
JsonConvert.DeserializeObject<RootObject<Sample[]>>(...);
我收到一個錯誤,無法反序列化當前JSON數組? 為什么? 如果我做動態運動,我可以遍歷一切,我認為我做的事情很愚蠢。
更新錯誤:
發生一個或多個錯誤。 (無法將當前的JSON數組(例如[1,2,3])反序列化為類型,因為該類型需要JSON對象(例如{“ name”:“ value”})才能正確地反序列化。要解決此錯誤,請更改JSON JsonArrayAttribute設置為JSON對象(例如{“ name”:“ value”})或將反序列化的類型更改為數組,或者將實現集合列表的類型(例如ICollection,IList)(例如可以從JSON數組反序列化的List)。也可以添加到該類型以強制其從JSON數組反序列化。路徑”,第1行,位置1。)
JSON數組對應於C#中的List<T>
,因此,應序列RootObject<Sample[]>
List<Sample>
,而不是序列RootObject<Sample[]>
List<Sample>
:
JsonConvert.DeserializeObject<List<Sample>>(...);
在這里使用RootObject<Sample[]>
是錯誤的,因為:
RootObject<Sample[]>
將具有類型為Samples[][]
的ApiModels
屬性,這顯然不是您想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.