JsonConverter
Common interface for Json Converters (Newtonsoft.Json, System.Text.Json, SimpleJson and more)
Install / Use
/learn @StefH/JsonConverterREADME
JsonConverter
Common interface + implementation for Json Converters:
NuGets
| Name | Version |
| - | - |
| JsonConverter.Abstractions |
| JsonConverter.Newtonsoft.Json |
| JsonConverter.System.Text.Json |
| JsonConverter.SimpleJson |
| JsonConverter.NetJSON |
| JsonConverter.Utf8Json |
| JsonConverter.XUtf8Json |
| JsonConverter.ServiceStack.Text |
| JsonConverter.Argon |
Interfaces
IJsonConverter
public interface IJsonConverter
{
Task<T?> DeserializeAsync<T>(Stream stream, IJsonConverterOptions? options = null, CancellationToken cancellationToken = default);
T? Deserialize<T>(Stream stream, IJsonConverterOptions? options = null);
T? Deserialize<T>(string text, IJsonConverterOptions? options = null);
object? Deserialize(string text, Type type, JsonConverterOptions? options = null);
Task<string> SerializeAsync(object source, IJsonConverterOptions? options = null, CancellationToken cancellationToken = default);
string Serialize(object source, IJsonConverterOptions? options = null);
Task SerializeAsync(Stream stream, object value, JsonConverterOptions? options = null, CancellationToken cancellationToken = default);
Task<bool> IsValidJsonAsync(Stream stream, CancellationToken cancellationToken = default);
Task<bool> IsValidJsonAsync(string input, CancellationToken cancellationToken = default);
bool IsValidJson(Stream stream);
bool IsValidJson(string input);
/// <summary>
/// Convert an object to a DynamicJsonClass or DynamicJsonClass-array.
/// </summary>.
/// <param name="value">The object (e.g. JObject in case of Newtonsoft.Json).</param>
/// <param name="options">The <see cref="DynamicJsonClassOptions"/> (optional).</param>
/// <returns>object, DynamicJsonClass or DynamicJsonClass-array</returns>
object? ConvertToDynamicJsonClass(object value, DynamicJsonClassOptions? options = null);
/// <summary>
/// Convert Json Text to a DynamicJsonClass or DynamicJsonClass-array.
/// </summary>.
/// <param name="text">The Json Text.</param>
/// <param name="options">The <see cref="DynamicJsonClassOptions"/> (optional).</param>
/// <returns>object, DynamicJsonClass or DynamicJsonClass-array</returns>
object? DeserializeToDynamicJsonClass(string text, DynamicJsonClassOptions? options = null);
JsonConverterOptions
public class JsonConverterOptions
{
public bool PropertyNameCaseInsensitive { get; set; }
public bool WriteIndented { get; set; }
public bool IgnoreNullValues { get; set; }
}
JsonConverterOptions
public class DynamicJsonClassOptions
{
public JsonConverterOptions? JsonConverterOptions { get; set; }
public IntegerBehavior IntegerConvertBehavior { get; set; } = IntegerBehavior.UseLong;
public FloatBehavior FloatConvertBehavior { get; set; } = FloatBehavior.UseDouble;
}
Sponsors
Entity Framework Extensions and Dapper Plus are major sponsors and proud to contribute to the development of JsonConverter.


