using System.Collections.Generic;
|
using Tea;
|
using Newtonsoft.Json;
|
|
namespace Alipay.EasySDK.Kernel.Util
|
{
|
/// <summary>
|
/// JSON工具类
|
/// </summary>
|
public class JsonUtil
|
{
|
/// <summary>
|
/// 将字典集合转换为Json字符串,转换过程中对于TeaModel,使用标注的字段名称而不是字段的变量名
|
/// </summary>
|
/// <param name="input">字典集合</param>
|
/// <returns>Json字符串</returns>
|
public static string ToJsonString(IDictionary<string, object> input)
|
{
|
IDictionary<string, object> result = new Dictionary<string, object>();
|
foreach (var pair in input)
|
{
|
if (pair.Value is TeaModel)
|
{
|
result.Add(pair.Key, GetTeaModelMap((TeaModel)pair.Value));
|
}
|
else
|
{
|
result.Add(pair.Key, pair.Value);
|
}
|
}
|
return JsonConvert.SerializeObject(result);
|
}
|
|
private static IDictionary<string, object> GetTeaModelMap(TeaModel teaModel)
|
{
|
|
IDictionary<string, object> result = new Dictionary<string, object>();
|
IDictionary<string, object> teaModelMap = teaModel.ToMap();
|
foreach (var pair in teaModelMap)
|
{
|
if (pair.Value is TeaModel)
|
{
|
result.Add(pair.Key, GetTeaModelMap((TeaModel)pair.Value));
|
}
|
else
|
{
|
result.Add(pair.Key, pair.Value);
|
}
|
}
|
return result;
|
}
|
}
|
}
|