Start Debugging
2023-10-22 Atualizado 2023-11-05 dotnetdotnet-8 Edit on GitHub

Deep clone e deep equality de um JsonNode

Veja como usar os novos métodos DeepClone() e DeepEquals() do JsonNode no .NET 8 para clonar e comparar nós JSON em profundidade.

A partir do .NET 8, a classe JsonNode ganhou alguns métodos novos para auxiliar no deep clone de nós e para verificar se eles são iguais ou não.

public partial class JsonNode
{
    public JsonNode DeepClone();

    public static bool DeepEquals(JsonNode? node1, JsonNode? node2);
}

O método DeepClone() cria e devolve um deep clone do nó atual e de todos os seus descendentes.

Já o DeepEquals() compara os valores das propriedades do nó e de todos os seus descendentes e retorna true somente quando as representações JSON deles são equivalentes. Um detalhe interessante: DeepEquals não é um método de instância como você está acostumado em Object.Equals(...), nem um método de extensão, então não dá para fazer simplesmente node1.DeepEquals(node2). Você sempre precisa chamar o método estático explicitamente: JsonNode.DeepEquals(node1, node2).

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Voltar