tigtools

JSON Diff

Επικολλήστε δύο έγγραφα JSON για να δείτε ακριβώς ποιες τιμές διαφέρουν, καταγεγραμμένες ανά διαδρομή όπως $.order.items[2].price.

Εκτελείται στον περιηγητή σας Χωρίς εγγραφή

Σύγκριση πινάκων
Προβολή

Πώς να το χρησιμοποιήσετε

  1. Επικολλήστε το αρχικό JSON αριστερά και το τροποποιημένο JSON δεξιά ή δοκιμάστε το παράδειγμα.
  2. Επιλέξτε πώς συγκρίνονται οι πίνακες: κατά θέση ή με αντιστοίχιση στοιχείων, ώστε ένα εισαγόμενο στοιχείο να αναφέρεται μία φορά.
  3. Διαβάστε τις διαφορές ως λίστα ή δίπλα-δίπλα. Κάθε διαφορά έχει μια διαδρομή από τη ρίζα ($).
  4. Αντιγράψτε την αναφορά για να την επικολλήσετε σε ένα ticket ή σε μια αναθεώρηση κώδικα.

Πώς λειτουργεί

Και τα δύο έγγραφα αναλύονται και συγκρίνονται ως δεδομένα και όχι ως κείμενο. Τα αντικείμενα συγκρίνονται κλειδί προς κλειδί, επομένως η σειρά των κλειδιών και τα κενά ή η εσοχή δεν έχουν σημασία. Οι αριθμοί συγκρίνονται κατά τιμή, οπότε το 1 και το 1.0 είναι ίσα.

Κάθε διαφορά έχει μια διαδρομή γραμμένη σαν έκφραση JSONPath: το $ είναι η ρίζα, το .name είναι μια ιδιότητα, το [2] είναι δείκτης πίνακα και τα κλειδιά που δεν είναι απλά ονόματα μπαίνουν σε εισαγωγικά, όπως στο $["first-name"]. Τέσσερα είδη διαφορών αναφέρονται: προστέθηκε (μόνο στα δεξιά), αφαιρέθηκε (μόνο στα αριστερά), άλλαξε (ίδιος τύπος, διαφορετική τιμή) και άλλαξε ο τύπος (για παράδειγμα ο αριθμός 44.9 έγινε η συμβολοσειρά "44.90" ή μια τιμή έγινε null). Όταν προστίθεται ή αφαιρείται ένα ολόκληρο αντικείμενο ή πίνακας, αναφέρεται μία φορά στη δική του διαδρομή και όχι μία φορά ανά πεδίο.

Οι πίνακες συγκρίνονται από προεπιλογή κατά θέση: το στοιχείο 0 με το στοιχείο 0, το στοιχείο 1 με το στοιχείο 1. Αν ένα στοιχείο εισαχθεί στην αρχή, όλα τα επόμενα στοιχεία φαίνονται αλλαγμένα. Η λειτουργία «Αντιστοίχιση μετακινημένων στοιχείων» ευθυγραμμίζει πρώτα τους δύο πίνακες χρησιμοποιώντας τη μεγαλύτερη κοινή υποακολουθία ίσων στοιχείων, έτσι ώστε μια εισαγωγή ή διαγραφή να αναφέρεται μόνο μία φορά και τα υπόλοιπα στοιχεία να αντιστοιχίζονται. Τα προστιθέμενα στοιχεία χρησιμοποιούν τον δείκτη τους στα δεξιά και τα αφαιρούμενα τον δείκτη τους στα αριστερά. Η αντιστοίχιση παραλείπεται για πολύ μεγάλους πίνακες (πάνω από περίπου 2 εκατομμύρια ζεύγη στοιχείων), οι οποίοι στη συνέχεια συγκρίνονται κατά θέση.

Οι διαδρομές κλειδιών στη λίστα ταξινομούνται αλφαβητικά μέσα σε κάθε αντικείμενο. Εμφανίζονται έως 2.000 διαφορές· η αναφορά που αντιγράφεται περιέχει πάντα όλες.

Παραδείγματα

Έλεγχος αλλαγής API

Συγκρίνετε τη χθεσινή και τη σημερινή απόκριση για την ίδια παραγγελία. Η διαφορά δείχνει ότι το $.status άλλαξε από «pending» σε «shipped», ο τύπος του $.total άλλαξε από number σε string, το $.coupon αφαιρέθηκε και προστέθηκε το $.customer.phone.

Απόκλιση διαμόρφωσης

Επικολλήστε τη διαμόρφωση JSON από το staging και από το production. Επειδή η σειρά των κλειδιών αγνοείται, εμφανίζονται μόνο πραγματικές διαφορές όπως $.cache.ttl 300 → 60, ακόμη κι αν τα αρχεία αποθηκεύτηκαν από διαφορετικά εργαλεία.

Λίστες με παρεμβαλλόμενο στοιχείο

Μια λίστα προϊόντων απέκτησε ένα νέο πρώτο στοιχείο. Με βάση τη θέση, κάθε προϊόν φαίνεται αλλαγμένο· με την επιλογή «Αντιστοίχιση μετακινημένων στοιχείων», το αποτέλεσμα είναι ένα μόνο «Προστέθηκε $[0]».

Συχνές ερωτήσεις

Σε τι διαφέρει αυτό από μια σύγκριση κειμένου;

Ένα εργαλείο σύγκρισης κειμένου συγκρίνει γραμμές, επομένως η αναδιάταξη κλειδιών ή η αλλαγή μορφοποίησης εμφανίζεται ως αλλαγή. Αυτό το εργαλείο συγκρίνει τα αναλυμένα δεδομένα, επομένως αναφέρονται μόνο διαφορές σε τιμές, τύπους και δομή.

Γιατί ένας πίνακας εμφανίζει πολλές αλλαγές μετά από μία εισαγωγή;

Στη λειτουργία «Κατά θέση», τα στοιχεία συγκρίνονται στον ίδιο δείκτη και μια εισαγωγή μετατοπίζει κάθε επόμενο στοιχείο. Επιλέξτε «Αντιστοίχιση μετακινημένων στοιχείων» για να ευθυγραμμιστούν πρώτα τα ίδια στοιχεία.

Αντιμετωπίζονται το «1» και το 1 ως ίσα;

Όχι. Το ένα είναι συμβολοσειρά και το άλλο αριθμός, επομένως η διαφορά αναφέρεται ως αλλαγή τύπου. Οι τιμές με τον ίδιο τύπο συγκρίνονται ακριβώς.

Μπορώ να συγκρίνω πολύ μεγάλα αρχεία;

Αρχεία μερικών megabyte λειτουργούν, αλλά όλα επεξεργάζονται στη μνήμη του προγράμματος περιήγησής σας, επομένως πολύ μεγάλα έγγραφα μπορεί να είναι αργά σε κινητά.

Απόρρητο

Και τα δύο έγγραφα αναλύονται και συγκρίνονται μόνο στο πρόγραμμα περιήγησής σας. Τίποτα δεν μεταφορτώνεται, δεν αποθηκεύεται ούτε περιλαμβάνεται στα αναλυτικά στοιχεία.