[英]Deserializing JSON objects to an array
我有一個API,它給我一個類似項目的列表作為不同的對象,而不是作為數組的成員。 讓我們看一下_items節點,它包含商店中的可用商品:
{
"_ok":200,
"_store":
{
"location":"Rome",
"open":true
},
"_items":
{
"itemA":{ "color":"blue","size":3},
"itemB":{ "color":"red","size":1},
"itemC":{ "color":"cyan","size":3},
"itemD":{ "color":"yellow","size":0},
}
}
我使用非常好的Newtonsoft JSON.NET進行反序列化,但我不知道如何獲得項目列表。 列表是一個數組,說:
"_items":{["itemA":{ "color":"blue","size":3},"itemB":...
我想用JsonConvert來獲取它會很容易
List<Item>
其中Item是一個具有顏色和大小成員的類。
。 太糟糕了,我無法更改API。 謝謝。
您可以使用JsonExtensionDataAttribute
來存儲項目,並使用屬性將它們轉換為Item
實例。
[JsonProperty("_items")]
private ItemsContainer _items;
[JsonObject(MemberSerialization.OptIn)]
class ItemsContainer
{
[JsonExtensionData]
private IDictionary<string, JToken> _items;
public IEnumerable<Item> Items
{
get
{
return _items.Values.Select(i => i.ToObject<Item>());
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.