using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

namespace Discovery.Utilities.Format
{
public static class StringExtension
{
public static string ToJson(this object obj)
{
if (obj == null)
{
return "";
}
return JsonConvert.SerializeObject(obj, Formatting.Indented, new CustomDateTimeConverter());
}

public static string ToJsonNoIndented(this object obj)
{
if (obj == null)
{
return "";
}
return JsonConvert.SerializeObject(obj, Formatting.None, new CustomDateTimeConverter());
}

/// <summary></summary>
/// <param name="obj"></param>
/// <returns></returns>
public static string ToJsonNoIndentedNoNull(this object obj)
{
if (obj == null)
{
return "";
}
var jSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Converters = new List<JsonConverter>() { new CustomDateTimeConverter() } };
return JsonConvert.SerializeObject(obj, Formatting.None, jSetting);
}

public static object DeserializeObject(this string value)
{
return JsonConvert.DeserializeObject(value);
}

/// <summary>
/// if null return "", if less than count return source string, if longer than count cut to count.
/// </summary>
/// <param name="str"></param>
/// <param name="length">length</param>
/// <returns></returns>
public static string LimitTo(this string str, int length)
{
if (string.IsNullOrEmpty(str))
{
return str;
}
if (str.Length > length)
{
return str.Substring(0, length);
}
return str;
}
}

public class CustomDateTimeConverter : IsoDateTimeConverter
{
public CustomDateTimeConverter()
{
base.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
}
}
}

最新文章

  1. SQL Server基础知识
  2. 【BZOJ】【3166】【HEOI2013】Alo
  3. WP手机升级WIN10被PIN码锁定
  4. JDBC开发模式
  5. ES6(一)let const
  6. CodeForces 606B Testing Robots
  7. gdb命令整理
  8. poj_2104: K-th Number 【主席树】
  9. Python第三章(北理国家精品课 嵩天等)
  10. 关于session共享
  11. [转载]oracle 数据类型详解---日期型
  12. ddmlib问题总结——同步获取设备信息
  13. CentOS 7安装Hadoop 3.0.0
  14. IDEA启动时自动报Plugin Error错误
  15. docker 简要学习
  16. ArrayList to Array Conversion in Java
  17. 树形DP新识
  18. Oracle 使用RMAN COPY 移动 整个数据库 位置 示例
  19. vijos 1071 01背包+输出路径
  20. JConsole的使用手册 JDK1.5(转)

热门文章

  1. 周练3(php反序列化)
  2. leetcode刷题(三)
  3. FMC DA子卡设计原理图:FMCJ465-2路 16bit 12.6GSPS FMC DA子卡
  4. windows运行xcopy计划任务 结果是0x4解决方案
  5. mysql主从故障跳过错误
  6. doskey: windows版 Alias
  7. vue vite 打包开启 gzip 部署 nginx 支持 gzip
  8. 2022-05-27内部群每日三题-清辉PMP
  9. 配置隐藏index.php
  10. idea快捷的输出常用语句