栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将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 }        }    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377519.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号