C# 使用Newtonsoft.Json序列化自定义类型
Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。
/******************************************************************
* 创建人:HTL
* 创建时间:2015-04-08 15:36:35
* 说明:C# 使用Newtonsoft.Json序列化和反序列化自定义类型
* Json.Net版本:6.0.0.0
* 需要导入Newtonsoft.Json组件
* DEMO Url:http://ideone.com/I6MuaZ
* Email:huangyuan413026@163.com
*******************************************************************/
using System;
using Newtonsoft.Json;
using System.Collections.Generic;
namespace NewtonsoftJsonTest
{
//自定义类型
public class User
{
public string name { get; set; }
public string age { get; set; }
public override string ToString()
{
if (string.IsNullOrEmpty(name) && string.IsNullOrEmpty(age)) return string.Empty; return string.Format("age:{0},name:{1}", this.age, this.name);
}
}
class Program
{
public static void Main(string[] args)
{
User p = null; #region//将字符串反序列化成自定义类型
try
{
p = JsonConvert.DeserializeObject<User>("{ \"age\":\"10\" , \"name\":\"HTL\" }");
//User p =(User)JsonConvert.DeserializeObject("{ \"age\":\"10\" , \"name\":\"HTL\" }",typeof(User));
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.WriteLine("将字符串反序列化成自定义类型结果");
Console.WriteLine((p ?? new User()).ToString());//输出:"age:10,name:HTL"
p = null;
#endregion Console.WriteLine(Environment.NewLine); #region//将自定义类型序列化成字符串
p = new User
{
age = ""
,
name = "HTL"
};
string s = string.Empty;
try
{
s = JsonConvert.SerializeObject(p);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
p = null;
}
Console.WriteLine("将自定义类型序列化成字符串结果:");
Console.WriteLine(s ?? string.Empty); //输出:"{\"name\":\"HTL\",\"age\":\"20\"}"
s = string.Empty;
#endregion
Console.ReadLine();
}
}
}
有图有真相

C# 使用Newtonsoft.Json序列化自定义类型的更多相关文章
- Newtonsoft.Json序列化Enum类型
[JsonConverter(typeof(StringEnumConverter))] public StringAlignment TextAlign { get => textAlign; ...
- 自定义JsonResult处理JSON序列化DateTime类型数据(Ext4.2+ASP.NET MVC 4)
最近项目中前台页面使用Extjs4.2 ,在后台ASP.NET MVC4返回的DateTime类型的数据错返回的DateTime类型的JsonResult的结果中的值是“\/Date(13784461 ...
- Newtonsoft.Json 序列化和反序列化 以及时间格式 2 高级使用
手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...
- Newtonsoft.Json 序列化踩坑之 IEnumerable
Newtonsoft.Json 序列化踩坑之 IEnumerable Intro Newtonsoft.Json 是 .NET 下最受欢迎 JSON 操作库,使用起来也是非常方便,有时候也可能会不小心 ...
- [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法
Newtonsoft.Json 序列化时的一些其它用法 在进行序列化时我们一般会选择使用匿名类型 new { },或者添加一个新类(包含想输出的所有字段).但不可避免的会出现以下情形:如属性值隐藏(敏 ...
- Newtonsoft.Json 转换DateTime类型为字符串时,串内部会有一个T。解决方案
使用Newtonsoft.Json 转换DateTime类型时,若使用标准转换,则字符串内会有一个T(虽然再转换成DateTime没有问题). 若要转换成DateTime没有T,可以加上特性: pub ...
- c# 使用 Newtonsoft.Json 序列化json字符串以及,反序列化对象
1. 序列化 对象 /** 使用 Newtonsoft.Json 序列化对象 **/ [WebMethod] public String getPersonInfos() { // 初始化数据 Lis ...
- Newtonsoft.Json序列化日期时间去T的几种方式。
原文地址:MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式. http://www.cnblogs.com/wuball/p/4231343. ...
- MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式。
原文链接:https://www.muhanxue.com/essays/2015/01/8623699.html MVC web api 返回JSON的几种方式 1.在WebApiConfig的Re ...
随机推荐
- Sublime Text2 默认语言(windows/unix)设置,Sublime插件大全
Sublime默认系统语言设置 Sublime Text 2默认使用的就是UTF8,这个UTF8模式使用的是不带BOM的,如果要修改这个配置,到Perference->Settings-User ...
- hdu 4560 拆点最大流 ***
题意: 2013年一开始,一档音乐节目“我是歌手”就惊艳了大家一回.闲话少说,现在,你成为了这档节目的总导演,你的任务很简单,安排每一期节目的内容. 现 在有N个歌手,M种歌曲流派(Rock,Pop之 ...
- 【10.26校内测试】【状压?DP】【最小生成树?搜索?】
Solution 据说正解DP30行??? 然后写了100行的状压DP?? 疯狂特判,一算极限时间复杂度过不了aaa!! 然而还是过了....QAQ 所以我定的状态是待转移的位置的前三位,用6位二进制 ...
- Charles基本使用—http抓包、手机抓包、数据篡改
本文主要介绍如下内容: 1.Charles如何抓取HTTP报文 2.Charles如何抓取手机上的HTTP包 3.使用Charles篡改数据信息 一.Charles抓取HTTP包 1.Charles的 ...
- jconsole监控上Linux上的JVM
说明: 首先JConsole这个是JDK里面自带的工具 在JAVA_HOME/bin目录下,今天主要测试远程监控JVM 第一步:设置好需要远程机器的Tomcat 修改Tomcat下的配置文件:/us ...
- Linux常用命令&定位生产报错日志
1. cd / 到根目录下 2. cd .. 返回上层目录 3.ls 显示当前目录有哪些文件 4. pwd 显示当前目录 5. ps -ef|grep tomcat7 查看当前运行进程 6. kill ...
- Git_创建标签
在Git中打标签非常简单,首先,切换到需要打标签的分支上: $ git branch * dev master $ git checkout master Switched to branch 'ma ...
- PPT文化
PPT文化,yes or no? 知识是有体系的,有的时候刚接触的时候可以 推导技术 ,汇报.吹牛都可以应用上,并且可以让别人想想. 但是实际应用技术,就需要涉及很多详细的技术细节,如果少掉一个看似极 ...
- [INSTALL_FAILED_OLDER_SDK]错误
在写完Demo后,执行时发现控制台打印出这么一段话:[INSTALL_FAILED_OLDER_SDK]错误. 原因是由于:測试机或者我们所用的虚拟机的android版本号太低. defaultCon ...
- Windows Phone SDK 8/8.1 官方下载
Windows Phone SDK 8.1 update英文版http://download.microsoft.com/download/E/7/D/E7D9744A-06A6-46FB-AEA4- ...