我们使用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; //设置序列化的最大层数版权声明:本文为g313105910原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。