Porównaj JSON, ignorując kolejność kluczy
Dwa obiekty JSON mogą być równoważne, nawet gdy ich właściwości występują w innej kolejności. Porównanie tekstu uznaje takie nieszkodliwe przestawienie za zmianę; porównanie semantyczne nie.
Obiekty i tablice podlegają innym regułom
Kolejność właściwości obiektu nie ma znaczenia semantycznego, dlatego należy je dopasowywać według nazwy. Kolejność tablicy zwykle ma znaczenie, więc wartości pozostają powiązane z indeksem, chyba że aplikacja definiuje inną regułę tożsamości.
Spłaszcz wartości do stabilnych ścieżek
Ścieżki takie jak $.klient.adres.miasto lub $.pozycje[2].cena nadają każdej wartości pierwotnej stabilną współrzędną. Ich porównanie ujawnia dodania, usunięcia i zmiany bez szumu wynikającego z wcięć lub kolejności kluczy.
- Najpierw przeanalizuj oba dokumenty.
- Posortuj klucze obiektów deterministycznie.
- Zachowaj indeksy tablic.
- Porównaj wartość na każdej uzyskanej ścieżce.
Rozpoznaj potrzebę wstępnego przetwarzania
Generowane znaczniki czasu, identyfikatory żądań i nieuporządkowane tablice mogą wymagać jawnej reguły ignorowania lub sortowania. Zastosuj i udokumentuj te reguły przed porównaniem; inaczej wynik nie będzie odtwarzalny.