[英]C# deserializing weirdly formatted JSON array
我正在為會計軟件開發客戶端庫。 通過HTTP API完成通信,該API返回JSON響應。 到目前為止,JSON一直很普通,可以輕松轉換為Json.Net解析的類。 但是有一個查詢,它返回一個非常奇怪的數組-每個數組成員都有一個標題(不重要),並被當作不同的對象(100%相同的成員)對待。 上一次我處理它時,我寫了一個小助手來刪除鍵,並用[]替換了{},但是我想知道是否可以直接使用Json.NET來正確解析它。
我正在使用最新的穩定Json.Net,.Net Framework 4.6,並使用JsonConvert.DeserializeObject反序列化。
Json數組,無法解析
{
...
"warehouses": {
"1": {
"warehouseID": 1,
"totalInStock": 0,
...
},
"2": {
"warehouseID": 2,
"totalInStock": 0,
...
},
"3": {
"warehouseID": 3,
"totalInStock": 0,
...
},
"4": {
"warehouseID": 4,
"totalInStock": 0,
...
}
},
...
}
班級
public class MainObject{
...
public List<Warehouse> warehouses { get; set;}
...
}
public class Warehouse{
public int warehouseID { get; set; }
public string totalInStock { get; set; }
...
}
'無法反序列化當前JSON對象(例如{“ name”:“ value”})為類型'System.Collections.Generic.List`1 [Warehouse]',因為該類型需要JSON數組(例如[1,2,3 ])正確反序列化。
那不是數組,而是鍵值映射。 C#中的相應類將是Dictionary<TKey,TValue>
。
重構為以下內容:
public class MainObject{
...
public Dictionary<int, Warehouse> warehouses { get; set;}
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.