2010-10-27 109 views
5

我有JSON這樣的:JSON.NET:反序列化JSON對象的一部分,以字典

{ 
    "Property":"Blah blah", 
    "Dictionary": { 
     "Key1" : "Value1", 
     "Key2" : "Value2", 
     "Key3" : "Value3" 
    } 
} 

我要提取的「字典」對象作爲字典(所以它會像鍵1 = >值1等)。如果我只是直接使用「字典」對象,我可以使用:

JsonConvert.DeserializeObject<Dictionary<string, string>> 

什麼是僅將Dictionary屬性作爲字典獲取的最佳方法?

在此先感謝! Tim

回答

10

花了我一點時間弄清楚,但我只是不覺得使用字符串解析或正則表達式來獲得我想要的內部JSON。

夠簡單;我沿着這些線做了一些內部數據:

var jObj = JObject.Parse(jsonText); 
var innerJObj = JObject.FromObject(jObj["Dictionary"]); 

工作得不錯。

+0

你如何從innerJobj(鍵入'JObject')到一個字典? – Brendan 2014-02-13 10:02:43

1

我想你必須解析JSON並移除外部對象。你可以決定你要反序列化的是什麼類型的對象,但是沒辦法告訴它不要反序列化最外層的對象。

+0

關於獲得內部JSON最佳方式的想法?字符串解析/正則表達式,還是有一些JSON.NET提供的方法? – 2010-10-27 17:12:13