zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    C语言PRO2
    pro5
    自我介绍
    李喆第5次作业
    李喆的作业
    一个队列类的实现(比delphi自带的速度快70倍)
    关于 IHTMLDocument4 在 Delphi7.0 中不能编译的的解决方法
    高吞吐量的一个日志函数类_用于IOCP (Delphi)
    PostThreadMessage在线程中应用(以多线程网站数据采集为例)
    微软企业库5 加密篇
  • 原文地址:https://www.cnblogs.com/loushengjie/p/11102553.html
Copyright © 2011-2022 走看看