JSON.NET: Deserializing part of a JSON object to a dictionary

谁说我不能喝 提交于 2019-12-04 08:17:10

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.

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.

You could also define the property as Dictionary in a class.

 var str = @"{
   ""Property"":""Blah blah"",
   ""Dictionary"": {
       ""Key1"" : ""Value1"",
       ""Key2"" : ""Value2"",
       ""Key3"" : ""Value3""
   }
 }";

 class MyObject {
   string Property { get; set; }
   Dictionary<string, string> Dictionary { get; set; }
 }

 MyObject obj = JsonConvert.DeserializeObject<MyObject>(str);
 var dict = obj.Dictionary;
drzaus

For reference, your answer is to (de)serialize json fragments. Also answered here, but your solution looks more succinct. Curious about performance differences...

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!