2010-10-27 2 views
5

У меня есть JSON как это:JSON.NET: Десериализация часть объекта JSON в словарь

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

Я хочу, чтобы извлечь «словарь» объект как словарь (так что было бы, как Key1 = > Value1 и т. Д.). Если бы я только имел «словарь» объект непосредственно, я мог бы использовать:

JsonConvert.DeserializeObject<Dictionary<string, string>> 

Какой самый лучший способ, чтобы получить только словарь собственность как словарь?

Заранее благодарен! Tim

ответ

10

Понадобилось немного времени, чтобы понять, но я просто не чувствовал себя хорошо в использовании синтаксического анализа строк или регулярных выражений, чтобы добраться до внутреннего JSON, который я хочу.

Простая; Я сделал что-то в этом направлении, чтобы получить внутренние данные:

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

Хорошо работает.

+0

Как вы переходите из innerJObj (типа 'JObject') в словарь? – Brendan

1

Думаю, вам придется разбирать JSON и удалять внешний объект. Вы можете диктовать, к какому объекту вы десериализуете, но нет способа сказать ему НЕ десериализовать самый внешний объект.

+0

Мысли о лучшем способе добраться до внутреннего JSON? Строковый синтаксический анализ/регулярное выражение, или есть какой-то метод JSON.NET? –

Смежные вопросы