using System.Collections.Generic;
|
using Newtonsoft.Json.Linq;
|
|
namespace Alipay.EasySDK.Kernel.Util
|
{
|
/// <summary>
|
/// 字典工具类
|
/// </summary>
|
public static class DictionaryUtil
|
{
|
/// <summary>
|
/// 将字典各层次Value中的JObject和JArray转换成C#标准库中的Dictionary和List
|
/// </summary>
|
/// <param name="dicObj">输入字典</param>
|
/// <returns>转换后的输出字典</returns>
|
public static Dictionary<string, object> ObjToDictionary(Dictionary<string, object> dicObj)
|
{
|
Dictionary<string, object> dic = new Dictionary<string, object>();
|
foreach (string key in dicObj.Keys)
|
{
|
if (dicObj[key] is JArray)
|
{
|
List<Dictionary<string, object>> dicObjList = ((JArray)dicObj[key]).ToObject<List<Dictionary<string, object>>>();
|
List<Dictionary<string, object>> dicList = new List<Dictionary<string, object>>();
|
foreach (Dictionary<string, object> objItem in dicObjList)
|
{
|
dicList.Add(ObjToDictionary(objItem));
|
}
|
dic.Add(key, dicList);
|
}
|
else if (dicObj[key] is JObject)
|
{
|
Dictionary<string, object> dicJObj = ((JObject)dicObj[key]).ToObject<Dictionary<string, object>>();
|
dic.Add(key, ObjToDictionary(dicJObj));
|
}
|
else
|
{
|
dic.Add(key, dicObj[key]);
|
}
|
}
|
return dic;
|
}
|
}
|
}
|