将JObject转换成字典。可能吗?

将JObject转换成字典。可能吗?,第1张

将JObject转换成字典。可能吗?

我最终使用了两个答案的混合,因为没有一个真正地钉住它。

ToObject()可以在JSON对象中执行第一级属性,但是嵌套对象不会转换为Dictionary()。

也不需要手动完成所有 *** 作,因为ToObject()的第一级属性非常好。

这是代码:

public static class JObjectExtensions{    public static IDictionary<string, object> ToDictionary(this JObject @object)    {        var result = @object.ToObject<Dictionary<string, object>>();        var JObjectKeys = (from r in result     let key = r.Key     let value = r.Value     where value.GetType() == typeof(JObject)     select key).ToList();        var JArrayKeys = (from r in result    let key = r.Key    let value = r.Value    where value.GetType() == typeof(JArray)    select key).ToList();        JArrayKeys.ForEach(key => result[key] = ((JArray)result[key]).Values().Select(x => ((JValue)x).Value).ToArray());        JObjectKeys.ForEach(key => result[key] = ToDictionary(result[key] as JObject));        return result;    }}

它可能在某些极端情况下无法正常工作,并且性能不是其最强的质量。

多谢你们!



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

原文地址: http://outofmemory.cn/zaji/5175195.html

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

发表评论

登录后才能评论

评论列表(0条)

保存