Newtonsoft.Json by James Newton-King

<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />

 JsonSerializerSettings

public class JsonSerializerSettings
Specifies the settings on a JsonSerializer object.
public SerializationBinder Binder { get; set; }

Gets or sets the SerializationBinder used by the serializer when resolving type names.

public bool CheckAdditionalContent { get; set; }

Gets a value indicating whether there will be a check for additional content after deserializing an object. The default value is false.

Gets or sets how constructors are used during deserialization. The default value is Default.

public StreamingContext Context { get; set; }

Gets or sets the StreamingContext used by the serializer when invoking serialization callback methods.

public IContractResolver ContractResolver { get; set; }

Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa.

public IList<JsonConverter> Converters { get; set; }

Gets or sets a JsonConverter collection that will be used during serialization.

public CultureInfo Culture { get; set; }

Gets or sets the culture used when reading JSON. The default value is InvariantCulture.

Gets or sets how dates are written to JSON text. The default value is IsoDateFormat.

public string DateFormatString { get; set; }

Gets or sets how DateTime and DateTimeOffset values are formatted when writing JSON text, and the expected date format when reading JSON text. The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".

public DateParseHandling DateParseHandling { get; set; }

Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. The default value is DateTime.

Gets or sets how DateTime time zones are handled during serialization and deserialization. The default value is RoundtripKind.

Gets or sets how default values are handled during serialization and deserialization. The default value is Include.

public IEqualityComparer EqualityComparer { get; set; }

Gets or sets the equality comparer used by the serializer when comparing references.

public EventHandler<ErrorEventArgs> Error { get; set; }

Gets or sets the error handler called during serialization and deserialization.

Gets or sets how special floating point numbers, e.g. NaN, PositiveInfinity and NegativeInfinity, are written as JSON. The default value is String.

Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. The default value is Double.

public Formatting Formatting { get; set; }

Indicates how JSON text output is formatted. The default value is None.

public int? MaxDepth { get; set; }

Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a JsonReaderException. A null value means there is no maximum. The default value is null.

Gets or sets how metadata properties are used during deserialization. The default value is Default.

Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. The default value is Ignore.

public NullValueHandling NullValueHandling { get; set; }

Gets or sets how null values are handled during serialization and deserialization. The default value is Include.

Gets or sets how objects are created during deserialization. The default value is Auto.

Gets or sets how object references are preserved by the serializer. The default value is None.

Gets or sets how reference loops (e.g. a class referencing itself) are handled. The default value is Error.

Gets or sets the IReferenceResolver used by the serializer when resolving references.

Gets or sets a function that creates the IReferenceResolver used by the serializer when resolving references.

Gets or sets the ISerializationBinder used by the serializer when resolving type names.

Gets or sets how strings are escaped when writing JSON text. The default value is Default.

public ITraceWriter TraceWriter { get; set; }

Gets or sets the ITraceWriter used by the serializer when writing trace messages.

Gets or sets how a type name assembly is written and resolved by the serializer. The default value is Simple.

Gets or sets how a type name assembly is written and resolved by the serializer. The default value is Simple.

public TypeNameHandling TypeNameHandling { get; set; }

Gets or sets how type name writing and reading is handled by the serializer. The default value is None.

Initializes a new instance of the JsonSerializerSettings class.