小Z

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JsonHelper

JsonHelper 序列化

需要再NuGet里面获取Newtonsoft.Json 组件

 

using System.Data;

using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json.Linq;

namespace Infrastructure.Common
{
    public class JsonHelper
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="value"></param>
        /// <param name="dateFormat"></param>
        /// <param name="isLowerCamelCase">是否小骆驼拼写法(首字母小写)</param>
        /// <returns></returns>
        public static string SerializeObject(object value, string dateFormat = null, bool isLowerCamelCase = false)
        {
            JsonSerializerSettings settings = null;

            if (!string.IsNullOrWhiteSpace(dateFormat))
            {
                settings = new JsonSerializerSettings() { DateFormatString = dateFormat };
            }

            if (isLowerCamelCase)
            {
                if (settings == null) settings = new JsonSerializerSettings();

                settings.Formatting = Formatting.Indented;
                settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            }

            return settings == null ? JsonConvert.SerializeObject(value) : JsonConvert.SerializeObject(value, settings);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="value"></param>
        /// <returns></returns>
        public static T DeserializeObject<T>(string value)
        {
            if (string.IsNullOrEmpty(value)) return default(T);

            return JsonConvert.DeserializeObject<T>(value);
        }

        public static DataTable ObjectToTable(string value)
        {
            DataTable dt = new DataTable();

            DataRow row = dt.NewRow();

            JObject jObject = JObject.Parse(value);

            foreach (var item in jObject)
            {
                dt.Columns.Add(item.Key);

                row[item.Key] = item.Value;
            }

            dt.Rows.Add(row);

            return dt;
        }
    }
}

 

posted on 2018-01-18 17:51  小z要当魔法师  阅读(116)  评论(0)    收藏  举报