Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。

让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换.
官网上三种不同的组件性能对比

/******************************************************************
* 创建人: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序列化自定义类型的更多相关文章

  1. Newtonsoft.Json序列化Enum类型

    [JsonConverter(typeof(StringEnumConverter))] public StringAlignment TextAlign { get => textAlign; ...

  2. 自定义JsonResult处理JSON序列化DateTime类型数据(Ext4.2+ASP.NET MVC 4)

    最近项目中前台页面使用Extjs4.2 ,在后台ASP.NET MVC4返回的DateTime类型的数据错返回的DateTime类型的JsonResult的结果中的值是“\/Date(13784461 ...

  3. Newtonsoft.Json 序列化和反序列化 以及时间格式 2 高级使用

    手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...

  4. Newtonsoft.Json 序列化踩坑之 IEnumerable

    Newtonsoft.Json 序列化踩坑之 IEnumerable Intro Newtonsoft.Json 是 .NET 下最受欢迎 JSON 操作库,使用起来也是非常方便,有时候也可能会不小心 ...

  5. [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法

    Newtonsoft.Json 序列化时的一些其它用法 在进行序列化时我们一般会选择使用匿名类型 new { },或者添加一个新类(包含想输出的所有字段).但不可避免的会出现以下情形:如属性值隐藏(敏 ...

  6. Newtonsoft.Json 转换DateTime类型为字符串时,串内部会有一个T。解决方案

    使用Newtonsoft.Json 转换DateTime类型时,若使用标准转换,则字符串内会有一个T(虽然再转换成DateTime没有问题). 若要转换成DateTime没有T,可以加上特性: pub ...

  7. c# 使用 Newtonsoft.Json 序列化json字符串以及,反序列化对象

    1. 序列化 对象 /** 使用 Newtonsoft.Json 序列化对象 **/ [WebMethod] public String getPersonInfos() { // 初始化数据 Lis ...

  8. Newtonsoft.Json序列化日期时间去T的几种方式。

    原文地址:MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式. http://www.cnblogs.com/wuball/p/4231343. ...

  9. MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式。

    原文链接:https://www.muhanxue.com/essays/2015/01/8623699.html MVC web api 返回JSON的几种方式 1.在WebApiConfig的Re ...

随机推荐

  1. android setContentView

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha setContentView  这个 就是 设置内容视图. 装饰视图 DecorView ...

  2. bzoj2660: [Beijing wc2012]最多的方案

    题目链接 bzoj2660: [Beijing wc2012]最多的方案 题解 对于一个数的斐波那契数列分解,他的最少项分解是唯一的 我们在拆分成的相临两项之间分解后者,这样形成的方案是最优且不重的 ...

  3. BZOJ 1951SDOI2010 古代猪文

    真是到很强的数学题 先利用欧拉定理A^B %p=A^(B%φ(p)+φ(p) ) %p 然后利用卢卡斯定理求出在modφ(p)的几个约数下的解 再利用中国剩余定理合并 计算答案即可 By:大奕哥 #i ...

  4. luoguP4503 [CTSC2014]企鹅QQ hash

    既然只有一位的不同,那么我们可以枚举这一位.... 我们只需要快速地计算去掉某一位的$hash$值.... 由于$hash(S) = \sum s[i] * seed^i$,因此去掉第$i$位的权值只 ...

  5. Linux提权exp大全

    如下表 #CVE #Description #Kernels CVE-2017-1000367 [Sudo] (Sudo 1.8.6p7 - 1.8.20) CVE-2017-7494 [Samba ...

  6. Alpha冲刺(1/10)——追光的人

    1.队友信息 队员学号 队员博客 221600219 小墨 https://www.cnblogs.com/hengyumo/ 221600240 真·大能猫 https://www.cnblogs. ...

  7. Inspect a new tab · cyrus-and/chrome-remote-interface Wiki

    Inspect a new tab · cyrus-and/chrome-remote-interface Wiki Runtime.evaluate

  8. HDU 1890 Robotic Sort (splay tree)

    Robotic Sort Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  9. hadoop学习;Streaming,aggregate;combiner

    hadoop streaming同意我们使用不论什么可运行脚本来处理按行组织的数据流,数据取自UNIX的标准输入STDIN,并输出到STDOUT 我们能够用 linux命令管道查看文本有多少行,cat ...

  10. 手动为Android 4.x 手机加入�自己的根证书(CA 证书)

    首先看Android 4.x 系统的证书存放位置: AOSP Android系统中CA证书文件的位置在:/ system/etc/security/cacerts/一系列的以数字命名的.0文件 方法一 ...