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. Google Earth Engine——基于改进的RSEI评估生态环境(水体掩膜后)

    未经允许,禁止随意转载,尊重他人版权,仅供学习参考,欢迎交流. 背景介绍 遥感生态指数(Remote Sensing Ecological Index)的获得,是使用主成分分析法耦合了绿度.湿度.干度 ...

  2. 初识redis之性能测试

    最近接触一项新技术的方法都是通过测试来入门的.对测试这件事情有了新的认识,觉得是类似做实验的一种方式.尤其对于后端,测试的性能指标是技术选型的重要参考. 好了,如果你想做一下redis的性能测试,不要 ...

  3. pyinstaller打包后运行提示“No module named 'PyQt5' "

    记录遇到的一个很傻的问题 脚本用到了PyQt5模块,安装成功脚本可以正常运行,但是使用pyinstaller 打包后,运行 exe文件提示 No module named 'PyQt5' 原因: 因为 ...

  4. Symbol类型

    Symbol 是ES6引入的一种新的原始数据类型,由于Symbol是一个原始类型的值,不是对象,不能添加属性.基本上 是一种类似于字符串的数据类型 概述 Symbol 可以接受一个字符串作为参数,主要 ...

  5. Java使用RestTemplate发送Post请求时携带参数

    String url = "https://www.baidu.com"; HttpHeaders headers = new HttpHeaders(); //设置请求头,自己从 ...

  6. (jmeter笔记)有序递增和无序递增

    有序递增:计数器 Track counter independently for each user: 不勾选,每个线程引用,顺延递增 勾选 ,每个线程引用,重新计算 Reset counter on ...

  7. JAVA图片压缩到指定大小

    这是压缩到小于300KB的,循环压缩,一次不行再压一次, 不废话,直接贴代码 <!-- 图片缩略图 --> <dependency> <groupId>net.co ...

  8. vxWidgets(二):接口文档

    第一章 介绍 在这一章中,我们会回答这样一些基本的问题:wxWidgets是什么,它和别的类似的开发库有什么不同.我们还会大概说一下这个项目的历史,以及wxWidgets社区的工作,它采用的许可协议, ...

  9. certutil工具使用和bypass学习

    乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站.服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作.利用此文所提供 ...

  10. Laravel ORM 常用方法

    1. 数据查询 ->find($id);  //需要一个主键$id并返回一个模型对象.若不存在则返回null ->findOrFail($id);  //需要一个主键$id并返回一个模型对 ...