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 ...
随机推荐
- Linux进程管理子系统
<进程要素> <进程与程序的区别> 程序: 存放在硬盘上一些列代码和数据的可执行映像,是一个静止的实体 进程: 是一个执行中的程序,是动态的实体 <进程4要素> 1 ...
- 02-c#基础之01-基础语法(一)
1.注释符 1)注销 2) 解释 2.C#中的3种注释符 1)单行注释// 2)多行注释/*要注释的内容*/ 3)文档注释///多用来解释类或者方法 2.VS中的快捷键
- android 数据存储方式
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 1,文件 2,内容提供者 3,偏好设置 4,数据库 5,网络存储. 网络存储,就是上传到 ...
- [HNOI2008]玩具装箱
OJ题号: BZOJ1010 思路: 斜率优化动态规划. 由题意得状态转移方程为$f_i=\displaystyle{\min_{j=0}^{i-1}}\{f_j+\left(i-j-1+\displ ...
- GIT(5)----常用命令:新分支,切换,删除,远程推送,标签,日志
常用命令 1.新分支 创建新分支:git branch <branch_name> 创建分支并切换到新的分支上:git checkout -b <branch_name> 2. ...
- Git_自定义Git
在安装Git一节中,我们已经配置了user.name和user.email,实际上,Git还有很多可配置项. 比如,让Git显示颜色,会让命令输出看起来更醒目: $ git config --glob ...
- JDK居然还有Server和Client模式
JDK这货居然还分Server和Client版本,但经过观察,据说从1.7+版本开始这两者运行的区别已经逐步减少了.所以接下来的分析没啥意义. 参考: http://www.oracle.com/te ...
- 使用Chrome快速实现数据的抓取(二)——协议
在前面的文章简单的介绍了一下Chrome调试模式的启动方式,但前面的API只能做到简单的打开,关闭标签操作,当我们需要对某个标签页进行详细的操作时,则需要用到页面管理API.首先我们还是来回顾下获取页 ...
- mysql-debug
http://www1.huachu.com.cn/read/readbookinfo.asp?sectionid=1000002778 http://hedengcheng.com/?p=238 h ...
- solaris 常用软件安装
http://blog.csdn.net/cuterhei/article/category/1259722