将JSON对象层次结构反序列化为Dictionary层次结构

将JSON对象层次结构反序列化为Dictionary层次结构,第1张

将JSON对象层次结构反序列化为Dictionary层次结构

我正在使用JSON.NET库和ExpandoObject类的组合解决WinRT应用程序中的同一问题。该库能够将JSON数据很好地反序列化为ExpandoObjects,后者实现IDictionary。ExpandoObject的键/值对的值可以轻松地视为另一个ExpandoObject。

这是我使用的适合您的样本的方法:

void LoadJSonData(){    string testData = "{ "Name":"John Smith", "Age":42, "Parent": { "Name":"Brian Smith", "Age":65, "Parent": { "Name":"James Smith", "Age":87, } } }";    ExpandoObject dataObj = JsonConvert.DeserializeObject<ExpandoObject>(testData, new ExpandoObjectConverter());    // Grab the parent object directly (if it exists) and treat as ExpandoObject    var parentElement = dataObj.Where(el => el.Key == "Parent").FirstOrDefault();    if (parentElement.Value != null && parentElement.Value is ExpandoObject)    {        ExpandoObject parentObj = (ExpandoObject)parentElement.Value;        // do something with the parent object...    }    // Alternately, iterate through the properties of the expando    foreach (var property in (IDictionary<String, Object>)dataObj)    {        if (property.Key == "Parent" && property.Value != null && property.Value is ExpandoObject)        { foreach (var parentProp in (ExpandoObject)property.Value) {     // do something with the properties in the parent expando }        }    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4924632.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-12

发表评论

登录后才能评论

评论列表(0条)

    保存