2011-09-09 16 views
2

としてJSONオブジェクトの一部をデシリアライズこれは私がJSON { "カウント" を有するないJSON.NET: Deserializing part of a JSON object to a dictionaryJSON.NET辞書

のDUPであります.. 。、 "品質":...}、 "美脚":{ "のitemId":...、 "品質":...}}

私は辞書にそれをデシリアライズする必要があります:IDictionary<GearSlot, Item> JSON全体を逆シリアル化しようとすると、をに逆シリアル化できないため、エラーが発生します。。

GearSlotは列挙型で、〜17 +の値を持ちます。現時点で私はクラスを定義しています:

public class Items { 
    property Item Head { get; set; } 
    property Item Legs { get; set; } 
    ... 
} 

それはうまく動作しますが、エレガントでぎこちないです。

提案がありますか?

答えて

2
this answerパー

this answer、あなたがdeserialize a partial JSON fragment、その後、再統合できます。

var root = JObject.Parse(jsonString); 
var serializer = new JsonSerializer(); 
var expectedResult = serializer.Deserialize<ExpectedType>(root["fragment"].CreateReader()); 

だから、あなたのため

var items = new Items { 
    Head = serializer.Deserialize<Item>(root["Head"]) 
    , Legs = serializer.Deserialize<Item>(root["Legs"]) 
};