De werking van een diff-analyse
Een diff-analyse is het proces waarbij twee versies van een document of gegevensbestand met elkaar worden vergeleken om de exacte verschillen te identificeren. Dit concept is fundamenteel binnen de softwareontwikkeling en het gegevensbeheer. Het stelt gebruikers in staat om snel te zien welke informatie is toegevoegd, verwijderd of gewijzigd tussen een originele en een aangepaste versie.
Bij het vergelijken van gegevens is het essentieel om onderscheid te maken tussen verschillende soorten wijzigingen:
- Toegevoegd: Elementen of tekstgedeelten die wel in de gewijzigde versie staan, maar niet in het origineel.
- Verwijderd: Elementen of tekstgedeelten die uit de gewijzigde versie zijn weggelaten.
- Gewijzigd: Bestaande elementen of tekstgedeelten die een aanpassing hebben ondergaan.
Het handmatig opsporen van deze mutaties is tijdrovend en foutgevoelig, zeker bij grotere bestanden of complexe datastructuren. Een geautomatiseerde vergelijking biedt hierbij een directe en nauwkeurige uitkomst.
Tekstvergelijking op basis van regels of woorden
In de tekstmodus vergelijkt de tool de ruwe inhoud van de invoervelden. Hierbij kan de granulariteit van de vergelijking handmatig worden ingesteld op twee niveaus:
- Regels: De vergelijking analyseert de tekst regel voor regel. Dit is met name nuttig voor broncode, configuratiebestanden of gestructureerde lijsten waar elke regel een op zichzelf staand element vertegenwoordigt.
- Woorden: De vergelijking zoomt in op individuele woorden binnen de regels. Dit niveau is ideaal voor het controleren van redactionele wijzigingen in korte teksten, waarbij minieme aanpassingen in de zinsbouw direct zichtbaar moeten worden.
De tool biedt een ingebouwd tekstvoorbeeld om de werking direct te demonstreren. De originele tekst aan de linkerkant luidt:
BroBroGo tools run in your browser.
They are fast, private and simple.
Use them when you need a quick check.
De gewijzigde tekst aan de rechterkant luidt:
BroBroGo tools run in your browser.
They are fast, private and focused.
Use them when you need a quick comparison.
Bij het uitvoeren van de vergelijking worden de specifieke aanpassingen tussen deze twee versies direct gemarkeerd.
Gestructureerde JSON-vergelijking en semantiek
Bij het vergelijken van JSON-data (JavaScript Object Notation) is een platte tekstvergelijking vaak ontoereikend. JSON is een gestructureerd gegevensformaat waarbij de fysieke weergave of de volgorde van de elementen niet noodzakelijkerwijs de betekenis van de data verandert.
In de JSON-modus parseert en formatteert de tool de inhoud van beide zijden eerst consistent. Dit brengt specifieke regels met zich mee voor verschillende datastructuren:
- Objecten: Object-keys worden vergeleken op basis van hun naam. Dit betekent dat een verandering in de volgorde van de keys binnen een object niet wordt gerapporteerd als een semantische wijziging. De tool herkent dat de data-inhoudelijk identiek is gebleven.
- Arrays: Arrays zijn geordende lijsten en worden daarom strikt op basis van hun positie vergeleken. Een verschuiving van een element naar een andere index wordt wel als een wijziging aangemerkt.
Wanneer er wijzigingen worden gevonden, toont de tool de specifieke structurele paden (zoals $.user.email) om exact aan te geven waar de mutatie zich bevindt. Als er geen inhoudelijke verschillen zijn, verschijnt de melding "Geen gewijzigde JSON-waarden gevonden".
Het JSON-voorbeeld in de tool illustreert dit. De linkerzijde bevat:
{
"name": "BroBroGo",
"plan": "free",
"tools": ["json", "regex", "hash"],
"private": true
}
De rechterzijde bevat de gewijzigde structuur:
{
"name": "BroBroGo",
"plan": "free",
"tools": ["json", "regex", "diff"],
"private": true,
"updated": 2026
}
De tool detecteert hierbij de wijziging in de array "tools" op de derde positie en de toevoeging van de key "updated".
Client-side verwerking en privacy
Bij het werken met gevoelige gegevens, zoals configuratiebestanden met systeeminstellingen of API-responses met klantinformatie, is databeveiliging een kritieke factor.
Je tekst en JSON worden in je browser vergeleken. Er wordt niets naar BroBroGo geüpload. Omdat alle berekeningen en vergelijkingen lokaal op de computer van de gebruiker worden uitgevoerd, verlaten de ingevoerde gegevens de browser niet. Dit biedt een directe methode om data te analyseren zonder het risico van datalekken via externe servers.
Grenzen aan invoer en foutafhandeling
Om de prestaties van de browser optimaal te houden en te zorgen dat de pagina soepel blijft werken, hanteert de tool strikte limieten en foutrapportages:
- Invoerlimiet: De invoer per zijde is gecapped op maximaal 300.000 tekens. Indien deze limiet wordt overschreden, toont de tool de foutmelding: "Die invoer is te groot voor deze tool. Probeer een kleinere vergelijking.".
- Tijdslimiet: Vergelijkingen die te veel processorkracht vereisen, worden na 2,5 seconden afgebroken. De gebruiker ziet dan de melding: "Deze vergelijking duurt te lang. Probeer een kortere tekst of de regelmodus.".
- Gecapte resultaten: Bij zeer grote invoer kan de tool besluiten een begrensd resultaat te tonen. Dit wordt aangegeven met de melding: "Resultaat is begrensd zodat de pagina soepel blijft werken.".
- Syntactische fouten: Als de ingevoerde JSON niet voldoet aan de specificaties, kan deze niet worden geparseerd. De tool geeft dan specifiek aan waar het probleem ligt met de foutmeldingen "Linker JSON is ongeldig:" of "Rechter JSON is ongeldig:", gevolgd door de exacte foutdetails.
- Algemene fouten: Wanneer een vergelijking om een andere reden mislukt, verschijnt de melding "Kan deze invoer niet vergelijken.".
Veelgestelde vragen (FAQ)
Wat is het verschil tussen de tekst- en JSON-modus?
De tekstmodus vergelijkt de ruwe inhoud per regel of woord. De JSON-modus parseert eerst beide kanten, formatteert ze consistent en toont de gewijzigde paden zoals $.user.email.
Is de tool geschikt voor zeer grote invoer?
Trage vergelijkingen stoppen na 2,5 seconden. Zeer grote, per ongeluk geplakte teksten worden begrensd zodat de pagina soepel blijft werken.
Negeert de JSON-modus de volgorde van object-keys?
De gestructureerde wijzigingslijst vergelijkt object-keys op naam, waardoor een andere volgorde van keys op zichzelf niet als een semantische wijziging wordt gezien. Arrays worden op basis van positie vergeleken.
Wat gebeurt er met mijn gegevens als ik ze in de tool plak?
Je tekst en JSON worden in je browser vergeleken. Er wordt niets naar BroBroGo geüpload. De verwerking vindt volledig lokaal plaats op jouw eigen apparaat.