2010-10-27 74 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