tags:

views:

40

answers:

2

I have JSON like this:

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

I want to extract the "Dictionary" object as a Dictionary (so it'd be like Key1 => Value1, etc.). If I just had the "Dictionary" object directly, I could use:

 JsonConvert.DeserializeObject<Dictionary<string, string>>

What's the best way to get just the Dictionary property as a Dictionary?

Thanks in advance! Tim

+1  A: 

I think you'd have to parse the JSON and remove the outer object. You can dictate what kind of object you are deserializing to, but there is no way to tell it NOT to deserialize the outermost object.

Gabriel McAdams
Thoughts on the best way to get at the inner JSON? String parsing/regex, or is there some JSON.NET-provided method?
Tim Ridgely
+2  A: 

Took me a little while to figure out, but I just didn't feel great about using string parsing or regexes to get at the inner JSON that I want.

Simple enough; I did something along these lines to get at the inner data:

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

Works well enough.

Tim Ridgely