csharp-quibble

Quibble Herramienta de Diferencias JSON para .NET

Quibble es una herramienta de comparación y diferencia de JSON para .NET que facilita la tarea de encontrar diferencias entre objetos JSON.

Esta biblioteca es útil en múltiples ocasiones, donde la capacidad de comparar estructuras JSON puede simplificar el proceso de validación de datos. Por ejemplo, en el contexto de pruebas automatizadas y depuración

Características de Quibble:

  • Comparación Profunda: Realiza una comparación profunda de objetos JSON, incluyendo arrays y objetos anidados.
  • Flexible y Configurable: Permite la personalización de las reglas de comparación y la exclusión de propiedades específicas.
  • Informes Detallados: Genera informes detallados sobre las diferencias encontradas entre los objetos JSON.
  • Integración en Pruebas: Ideal para integrarse en frameworks de pruebas automatizadas, como xUnit o NUnit.

Instalación de Quibble

Para agregar Quibble a tu proyecto de .NET, usa el administrador de paquetes NuGet. Abrimos la terminal o la consola del administrador de paquetes de Visual Studio y ejecuta el siguiente comando:

Install-Package Quibble

O mediante la interfaz de NuGet en Visual Studio, busca Quibble e instálalo en tu proyecto.

Cómo Usar Quibble

Comparación Básica de JSON

Para comenzar a utilizar Quibble, primero debes importar el espacio de nombres adecuado y luego usar el método JsonStrings.Diff(...) para comparar objetos JSON. Aquí hay un ejemplo básico:

using System;
using Quibble;

class Program
{
    static void Main(string[] args)
    {
        var json1 = @"{ ""name"": ""John"", ""age"": 30 }";
        var json2 = @"{ ""name"": ""John"", ""age"": 31 }";
        
        var differences = JsonStrings.Diff(json1, json2);

        Console.WriteLine("Diferencias encontradas:");
        foreach (var difference in differences)
        {
            Console.WriteLine(difference);
        }
    }
}

En este ejemplo, JsonComparer compara dos cadenas JSON y muestra las diferencias encontradas. El resultado incluirá detalles sobre las propiedades que tienen valores diferentes.

Diferencias encontradas:
ValueDiff { Path = $.age, Left = 30 (30), Right = 31 (31) }

Comparación de JSON Complejos

Quibble maneja comparaciones más complejas, incluyendo arrays y objetos anidados. A continuación, se muestra cómo comparar objetos JSON más elaborados:

using System;
using Quibble;

class Program
{
    static void Main(string[] args)
    {
        var json1 = @"{
            ""person"": { ""name"": ""John"", ""age"": 30 },
            ""hobbies"": [""reading"", ""swimming""]
        }";

        var json2 = @"{
            ""person"": { ""name"": ""John"", ""age"": 31 },
            ""hobbies"": [""reading"", ""cycling""]
        }";

         var differences = JsonStrings.Diff(json1, json2);

        Console.WriteLine("Diferencias encontradas:");
        foreach (var difference in differences)
        {
            Console.WriteLine(difference);
        }
    }
}

En este caso, Quibble compara un objeto JSON con un objeto más complejo que incluye tanto propiedades anidadas como arrays, mostrando diferencias en ambos casos.

ValueDiff { Path = $.person.age, Left = 30 (30), Right = 31 (31) }
ValueDiff { Path = $.hobbies[1], Left = swimming, Right = cycling }

Para obtener más información y explorar la documentación completa, visita el repositorio oficial de Quibble en GitHub. Aquí encontrarás ejemplos adicionales, documentación y recursos.