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";
}
}
}

json extionsion的更多相关文章

  1. 使用TSQL查询和更新 JSON 数据

    JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...

  2. 【疯狂造轮子-iOS】JSON转Model系列之二

    [疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...

  3. 【疯狂造轮子-iOS】JSON转Model系列之一

    [疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...

  4. Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

    背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...

  5. .NET Core系列 : 2 、project.json 这葫芦里卖的什么药

    .NET Core系列 : 1..NET Core 环境搭建和命令行CLI入门 介绍了.NET Core环境,本文介绍.NET Core中最重要的一个配置文件project.json的相关内容.我们可 ...

  6. 一个粗心的Bug,JSON格式不规范导致AJAX错误

    一.事件回放  今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...

  7. JSON.parse()和JSON.stringify()

    1.parse 用于从一个字符串中解析出json 对象.例如 var str='{"name":"cpf","age":"23&q ...

  8. json与JavaScript对象互换

    1,json字符串转化为JavaScript对象: 方法:JSON.parse(string) eg:var account = '{"name":"jaytan&quo ...

  9. .NET平台开源项目速览(18)C#平台JSON实体类生成器JSON C# Class Generator

    去年,我在一篇文章用原始方法解析复杂字符串,json一定要用JsonMapper么?中介绍了简单的JSON解析的问题,那种方法在当时的环境是非常方便的,因为不需要生成实体类,结构很容易解析.但随着业务 ...

  10. WebApi接口 - 响应输出xml和json

    格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...

随机推荐

  1. 001、nodelocaldns(/etc/resolv.conf)

    nodelocaldns  pod 中的 /etc/resolv.conf 虽然读取的是 宿主机的/etc/resolv.conf,但是不是实时同步更新的.可能同步更新会有延迟 所以如果  /etc/ ...

  2. 存储型XSS的利用

    一.存储型XSS漏洞利用原理 攻击者事先将恶意代码上传或储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码.意味着只要访问了这个页面的访客,都有可能会执行这段恶意脚本. 二.漏洞利 ...

  3. Linux - tar 命令详解 (压缩,解压,加密压缩,解密压缩)

    压缩tar -czvf /path/to/file.tar.gz file  (第一个参数:文件压缩的位置和名字  第二个参数:需要压缩的文件) 解压 tar -xzvf /path/to/file. ...

  4. 这个仅2M的宝藏小工具,竟无需群发就能揪出微信所有单向好友!

    背景:很多人平时微信跟人发消息的时候,发现自己已经被对方清理掉了,因此可能想把自己的微信单向好友都清理出去."转账验证好友"是大部分人已经都知道的方法,但是好友太多,我们实在是无法 ...

  5. Linux 部署apache2.4

    apache httpd-2.4.46.tar.gz部署环境 Linux6.5 依赖包: apr-1.6.3.tar.gz apr-util-1.5.2.tar.gz 先部署apr 1.tar -xf ...

  6. RabbitMQ-00-Windows10安装RabbitMQ及安装使用过程中遇到的一些问题

    Window系统安装教程 安装参考博客:https://blog.csdn.net/spl545056/article/details/81392015 重装RabbitMQ时遇到的问题 安装提示成功 ...

  7. Docker部署netdata 性能实时监控

    netdata 是常用的Linux系统性能实时监控面板 netdata 官方文档 https://learn.netdata.cloud/ 1.Docker 镜像下载地址 https://hub.do ...

  8. vdom diff

    其实diff的核心在于两点: 比对(diff的运算过程) 修改(diff的返回结果,输出生成的patch并操作) 树的BFS(广度优先遍历)/DFS(深度优先遍历),需要O(N)的时空复杂度 传统di ...

  9. 利用shell脚本来监控linux系统的负载与CPU占用情况

    一.安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具) 1.下载安装: http://downloads.sourceforge.net/msmtp/msmtp-1.4 ...

  10. matlab算符合集

    1.逻辑算符 1)且 : A & B -- 两个逻辑数组之间 逐个元素 进行逻辑"与"操作 AB可为矩阵. 首先判断表达式A的逻辑值,然后判断B,继而进行逻辑"与 ...