.Net C# Newtonsoft.Json JsonSerializerSettings配置

Posted シ゛甜虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net C# Newtonsoft.Json JsonSerializerSettings配置相关的知识,希望对你有一定的参考价值。

我们使用Json的时候,常常有一些个性化设置,通过JsonSerializerSettings来进行参数配置,这里面有很多参数,下面列出一部分,是不是很多啊,但是平时我们常用的不多

第一个就是驼峰模式

//设定小驼峰模式,属性名首字母小写
var setting = new JsonSerializerSettings

    ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver(),
;

第二个就是转换成string增加换行和缩进,增加易读性Formatting.Indented

JsonConvert.SerializeObject(parameters, Formatting.Indented, setting);

后面的我不是太常用

1、忽略某些属性MemberSerialization.OptIn

 [JsonIgnore]
 public string Name  get; set; 

2、默认值的处理DefaultValueHandling.Ignore

3、空值的处理NullValueHandling

4、支持非公共成员

序列化时默认都是处理公共成员,如果需要处理非公共成员,就要在该成员上加特性JsonProperty

5、日期处理DateFormatHandling

对于Dateime类型日期的格式化,系统自带的会格式化成iso日期标准"BirthDay":"2011-01-01T00:00:00"

public class LongDateTimeConvert: Newtonsoft.Json.Converters.IsoDateTimeConverter

    public LongDateTimeConvert() : base()
    
        base.DateTimeFormat = "yyyy-MM-dd";
    

[JsonConverter(typeof(LongDateTimeConvert))]
public DateTime BirthDay  get; set; 

6、自定义序列化的字段名称

[JsonProperty(PropertyName = "age")]

7、序列化循环 引用及处理层数

MaxDepth = 10; //设置序列化的最大层数

以上是关于.Net C# Newtonsoft.Json JsonSerializerSettings配置的主要内容,如果未能解决你的问题,请参考以下文章

C#如何Json转字符串;字符串转Json;Newtonsoft.Json(Json.Net)

JsonConvert 在 Newtonsoft.Json Asp.net MVC C# 中不起作用

c# 在.NET使用Newtonsoft.Json转换,读取,写入json

j.net 实现json的序列化与反序列化

分享基于.NET动态编译&Newtonsoft.Json封装实现JSON转换器(JsonConverter)原理及JSON操作技巧

C#中使用Newtonsoft.Json序列化和反序列化自定义类对象