Buscar pacotes, repositórios e categorias de apps

Repositório GitHubgoogle/dart-json_diff

dart-json_diff

google/dart-json_diff open-source repository details.

Capa do projeto dart-json_diff
Estrelas
74
Forks
18
Último push (UTC)
14 de set. de 2022
Status do projeto
Arquivado

README original

Texto original em inglês. Visite o GitHub para a versão atual.

Build Status

Generate a diff between two JSON strings.

Usage

Here's a basic example which features a deleted object, a new object, a changed object, and a deeply changed object:

import 'package:json_diff/json_diff.dart';

final left = {"a": 2, "b": 3, "c": 5, "d": {"x": 4, "y": 8}};
final right = {"b": 7, "c": 5, "d": {"x": 4, "z": 16}, "e": 11};
final differ = JsonDiffer.fromJson(left, right);
DiffNode diff = differ.diff();
print(diff.added);              // => {"e": 11}
print(diff.removed);            // => {"a": 2}
print(diff.changed);            // => {"b": [3, 7]}
print(diff.node);               // => a Map<String,DiffNode>
print(diff.node['d']);          // => a DiffNode
print(diff.node['d'].added);    // => {"z": 16}
print(diff.node['d'].removed);  // => {"y": 8}

So that's pretty fun. So when you diff two JSON strings, you get back a DiffNode. A DiffNode is a heirarchical structure that vaguely mirrors the structure of the input JSON strings. In this example, the top-level DiffNode we got back has

  • an added property, which is a Map of top-level properties that were not found in left, and were found in right.
  • a removed property, which is a Map of top-level properties that were found in left, but were not found in right.
  • a changed property, which is a Map of top-level properties whose values are different in left and in right. The values in this Map are two-element Arrays. The 0th element is the old value (from left), and the 1st element is the new value (from right).
  • a moved property, which is a Map of indexes, where key is the original index of an element, and value is index in the changed list.
  • a node property, a Map of the properties found in both left and right that have deep differences. The values of this Map are more DiffNodes.
  • a path property, which is a List of indexes, describing the path from the root where this DiffNode is operating.

Contributing

Contributions welcome! Please read the contribution guidelines.

Disclaimer

This is not an official Google product.

Google GitHub avatar
Autor no GitHub

Google ↗

Google ❤️ Open Source

United States of AmericaSite oficial ↗
LinguagensDart

Pacotes publicados por este repositório

Dependências usadas

Lista de dependências 4 itens

Como escolher um repositório para seu projeto?

Filtre pelo caso de uso, compare a atividade e confira o projeto original antes de adotá-lo.

  1. Busque por nome, autor ou descrição e filtre por tema.
  2. Compare estrelas, forks e envios recentes. Estrelas indicam interesse, mas não garantem qualidade.
  3. Confira o README, a licença e as issues no GitHub antes de usar o projeto.

Fontes e manutenção

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗