JsonHelper

Json对于一个开发者来说已经不陌生了,首先肯定要引用Newtonsoft.Json,对于开发者可以在NuGet包里面下载

也可以在下面链接下载

链接:https://pan.baidu.com/s/1yH5Yp2c9f73Bkx5bLiiiNQ
提取码:xi64

JsonHelper
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Web.Script.Serialization;

namespace Common
{
    public class JsonHelper
    {
        /// <summary>
        ///  实体转json
        /// </summary>
        /// <typeparam name="T">实体</typeparam>
        /// <param name="x">实体</param>
        /// <returns></returns>
        public static string EntityToJson<T>(T x)
        {
            string result = "";
            try
            {
                result = JsonConvert.SerializeObject(x);

            }
            catch
            {
                result = "";
            }
            return result;
        }

        /// <summary>
        ///  实体集合List转json
        /// </summary>
        /// <typeparam name="T">实体</typeparam>
        /// <param name="x">实体</param>
        /// <returns></returns>
        public static string EntityListToJson<T>(List<T> x)
        {
            string result = "";
            try
            {
                result = JsonConvert.SerializeObject(x);
            }
            catch
            {
                result = "";
            }
            return result;
        }

        /// <summary>
        /// 实体集合list转json_null
        /// </summary>
        /// <typeparam name="T">实体</typeparam>
        /// <param name="x">实体</param>
        /// <returns></returns>
        public static string EntityListToJson_null<T>(List<T> x)
        {
            string result = "";
            try
            {
                var jSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
                result = JsonConvert.SerializeObject(x, Formatting.Indented, jSetting);
            }
            catch
            {
                result = "";
            }
            return result;
        }

        /// <summary>
        ///  json转实体
        /// </summary>
        /// <typeparam name="T">实体</typeparam>
        /// <param name="json">json</param>
        /// <returns></returns>
        public static T JsonToEntity<T>(string json)
        {
            T t = default(T);
            try
            {
                t = (T)JsonConvert.DeserializeObject(json, typeof(T));
            }
            catch
            {
                t = default(T);
            }
            return t;
        }

        /// <summary>
        ///  json list转集合List实体
        /// </summary>
        /// <typeparam name="T">实体</typeparam>
        /// <param name="json">json</param>
        /// <returns></returns>
        public static List<T> JsonToListEntity<T>(string json)
        {
            List<T> list = null;
            try
            {
                list = (List<T>)JsonConvert.DeserializeObject(json, typeof(List<T>));
            }
            catch
            {
                list = null;
            }
            return list;
        }



        #region 将json转换为DataTable
        /// <summary>
        /// 将json转换为DataTable
        /// </summary>
        /// <param name="strJson">得到的json</param>
        /// <returns></returns>
        public static DataTable JsonToDataTable(string json)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            ArrayList dic = jss.Deserialize<ArrayList>(json);
            DataTable dtb = new DataTable();
            if (dic.Count > 0)
            {
                foreach (Dictionary<string, object> drow in dic)
                {
                    if (dtb.Columns.Count == 0)
                    {
                        foreach (string key in drow.Keys)
                        {
                            try
                            {
                                dtb.Columns.Add(key, drow[key].GetType());
                            }
                            catch (Exception)
                            {
                                string a="";
                                dtb.Columns.Add(key, a.GetType());
                            } 
                            
                        }
                    } DataRow row = dtb.NewRow();
                    foreach (string key in drow.Keys)
                    { row[key] = drow[key]; }
                    dtb.Rows.Add(row);
                }
            }
            return dtb;
        }
        #endregion
        #region 将DataTable转换为json
        public static string DataTableToJsonWithJsonNet(DataTable table)
        {
            string JsonString = string.Empty;
            JsonString = JsonConvert.SerializeObject(table);
            return JsonString;
        }

        public static T JsonToEntity<T>(object reqMessageBody)
        {
            throw new NotImplementedException();
        }
        #endregion


    }
}

有疑问请咨询https://wpa.qq.com/msgrd?v=3&uin=2861510776&site=qq&menu=yes

原文地址:https://www.cnblogs.com/loushengjie/p/11102553.html