首页 > 其他分享 >list集合,dataTable 转json null转空字符串,时间格式

list集合,dataTable 转json null转空字符串,时间格式

时间:2023-10-24 17:02:17浏览次数:38  
标签:return list json var new null row

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Utils
{
    public class NewtonsoftHelper
    {
        public static string ToJson<T>(T obj)
        {
            if (obj == null) return null;
            return JsonConvert.SerializeObject(obj);
       
        }

        public static T ToObject<T>(string jsonString)
        {
            if (string.IsNullOrEmpty(jsonString)) return default(T);
            return JsonConvert.DeserializeObject<T>(jsonString);
        }


        #region 新加的方法

        /// <summary>
        /// 对象转json  null转空字符串,时间格式
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public static string ItemToJson(object item)
        {
            Dictionary<string, object> row = new Dictionary<string, object>();
            var propertyInfos = item.GetType().GetProperties();
            foreach (var propertyInfo in propertyInfos)
            {
                object result = propertyInfo.GetValue(item);
                object value = result == null ? "" : result;
                row.Add(propertyInfo.Name, value);
            }

            var settings = new JsonSerializerSettings
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore,//这种方式指定忽略循环引用,是在指定循环级数后忽略,返回的json数据中还是有部分循环的数据
                DateFormatString = "yyyy-MM-dd HH:mm:ss",
                //ContractResolver = new CamelCasePropertyNamesContractResolver(),//json中属性开头字母小写的驼峰命名
            };
            return JsonConvert.SerializeObject(row, settings);
        }


        /// <summary>
        /// list转json  null转空字符串,时间格式
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="list"></param>
        /// <returns></returns>
        public static string ListToJson<T>(List<T> list)
        {
            List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
            Dictionary<string, object> row;
            foreach (var item in list)
            {
                row = new Dictionary<string, object>();
                var propertyInfos = item.GetType().GetProperties();
                foreach (var propertyInfo in propertyInfos)
                {
                    object result = propertyInfo.GetValue(item);
                    object value = result == null ? "" : result;
                    row.Add(propertyInfo.Name, value);
                }
                rows.Add(row);
            }

            var settings = new JsonSerializerSettings
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore,//这种方式指定忽略循环引用,是在指定循环级数后忽略,返回的json数据中还是有部分循环的数据
                DateFormatString = "yyyy-MM-dd HH:mm:ss",
                //ContractResolver = new CamelCasePropertyNamesContractResolver(),//json中属性开头字母小写的驼峰命名
            };
            return JsonConvert.SerializeObject(rows, settings);
        }

        /// <summary>
        /// DataTable转json  null转空字符串,时间格式
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static string DataTableToJson(DataTable dt)
        {
            List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
            Dictionary<string, object> row;
            foreach (DataRow dr in dt.Rows)
            {
                row = new Dictionary<string, object>();
                foreach (DataColumn col in dt.Columns)
                {
                    object value = dr[col]== Convert.DBNull ? "" : dr[col];
                    row.Add(col.ColumnName, value);
                }
                rows.Add(row);
            }

            var settings = new JsonSerializerSettings
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore,//这种方式指定忽略循环引用,是在指定循环级数后忽略,返回的json数据中还是有部分循环的数据
                DateFormatString = "yyyy-MM-dd HH:mm:ss",
                //ContractResolver = new CamelCasePropertyNamesContractResolver(),//json中属性开头字母小写的驼峰命名
            };
            return JsonConvert.SerializeObject(rows, settings);
        }

        #endregion
    }
}

 

标签:return,list,json,var,new,null,row
From: https://www.cnblogs.com/chxl800/p/17785231.html

相关文章

  • 如何用Java找出两个List中的重复元素,读这一篇就够了
     在Java编程中,我们经常需要找出两个列表(List)中的重复元素。在本文中,我们将探讨三种方法来实现这一目标。 方法一:使用HashSetJava中的HashSet是一个不允许有重复元素的集合。我们可以利用这个特性,通过合并两个List并计算差集,来找出重复的元素。以下是一个通过使用HashSet数......
  • C#对没有规律的json字符串转化为对象序列化并遍历读取
    varjsonString={"BillDate":1,"TypeName":0,"StepNum":0,"CollectCode":0,"Uncollected":1,"Tax":0,"AbstractInfo":1}现在我们要对这它进行转化并遍历读取:///<summary>///把json字符串转化为对象//......
  • Jquery向json对象添加键值对,读取键值对,删除键值对
    添加键值对varlabelName={};labelName["Name"]="James"labelName["Sex"]="1"结果:labelName={"Name":"James","Sex":1};读取键值对vargetData={"Label":"Dong","Sex":&quo......
  • jquery对复杂的集合型Json数据进行筛选(象C#的find一样)
    比如如下js下的json数据:varlist=[{"ColName":"OrderDate","ColLabel":"日期","ColNewLabel":"日期","IsChecked":1,"Sort":"0"},{"ColName":"OrderCode","ColLa......
  • Java List 排序的2种方法
    1. 利用Collections类的java.util.Collections.sort(java.util.List,java.util.Comparator)方法,自定义比较器对象对指定对象进行排序对学生对象按照其分数(降序)进行排序,当分数相同时按学号(从小到大)排序,代码如下:Student类classStudent{ privateintid; privateStringname......
  • C#序列化和反序列化JSON的两种方法(转载)(三)
    C#有两种方式序列化和反序列化JSON字符串:第一种是System.Web.Script.Serialization下的JavaScriptSerializer,原生自带的这种方法需要与类绑定,不方便。第二种是Json.NET第三方库方法,既可以与对象绑定,也可以反序列化为更通用的JObject,方便易用,推荐。一:  JavaScript......
  • JWT Tool:针对 JSON Web Tokens 的测试工具题解JWT cracking
    什么是JWT?JWT是JSONWebToken的缩写,它是一串带有声明信息的字符串,由服务端使用加密算法对信息签名,以保证其完整性和不可伪造性。Token里可以包含所有必要的信息,这样服务端就无需保存任何关于用户或会话的信息了。JWT可用于身份认证,会话状态维持以及信息交换等任务。JWT由三部分......
  • 项目中JSON序列化循环引用的问题
    已经很多次碰到循环引用的问题了之前碰到是在Spring中初始化过程中component之间存在循环引用怎么办 这次碰到,是在JSON序列话的时候碰到了循环引用导致的问题问题原因:在结构体中,为了实现方便数据的引用,在数据结构中加入了Parent节点,由于存在child节点,在生成json对象的时候就......
  • json的解析和生成(两种方式对比)(二)
    一:解析JSON文件       解析JSON文件用到两种方法都可以,即两种类库,都可以     用到的类库      JavaScriptSerializer类,内置于.NET中用于解析的生成JSON文件      JSON.NET库,第三方加载包    第一种用:NET自带的JavaScriptSerializer     ......
  • json简介&语法(一)
    简介:    轻量级的数据交换格式,独立于语言,与JavaScript对象的语法相同。可用于存储应用程序数据。比XML轻量。语法:  json包含值,对象,数组值:字符串,数值,真,假,空值,对象,数组如图:      一:JSON对象  1.名称/值对使用冒号  2.用花括号括起  3.用逗号......