SkillAgentSearch skills...

JsonConverter

Common interface for Json Converters (Newtonsoft.Json, System.Text.Json, SimpleJson and more)

Install / Use

/learn @StefH/JsonConverter
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

JsonConverter

Common interface + implementation for Json Converters:

NuGets

| Name | Version | | - | - | | JsonConverter.Abstractions | NuGet Badge | JsonConverter.Newtonsoft.Json | NuGet Badge | JsonConverter.System.Text.Json | NuGet Badge | JsonConverter.SimpleJson | NuGet Badge | JsonConverter.NetJSON | NuGet Badge | JsonConverter.Utf8Json | NuGet Badge | JsonConverter.XUtf8Json | NuGet Badge | JsonConverter.ServiceStack.Text | NuGet Badge | JsonConverter.Argon | NuGet Badge

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.

Entity Framework Extensions

Dapper Plus

View on GitHub
GitHub Stars7
CategoryDevelopment
Updated3mo ago
Forks1

Languages

C#

Security Score

82/100

Audited on Dec 21, 2025

No findings