Verwarde JSON omzetten in een duidelijke interactieve boom met jsontr.ee
Onlangs was ik een API-response van een derde partij aan het parsen, een paar honderd regels lang met een dozijn geneste arrays en objecten. IDE-opmaak en de vertrouwde inklapbare viewer in de browser hielpen niet veel: om de relaties tussen entiteiten te begrijpen, moest ik voortdurend omhoog en omlaag scrollen, waardoor ik de context verloor. In momenten als deze wil je gewoon de hele datagrafiek op één scherm zien.
Ik stuitte op een compacte bibliotheek genaamd jsontr.ee op GitHub, speciaal gebouwd om dit exacte probleem op te lossen. Het neemt elk JSON-object en genereert er een interactieve SVG-gebaseerde boom uit.
Wat de bibliotheek kan doen
De repository The-01-Company/jsontr.ee bevat een lichtgewicht JavaScript-script zonder zware afhankelijkheden. Het hoofddoel is om datahiërarchieën snel als diagrammen met knooppunten en verbindingen te renderen.
De bibliotheek heeft verschillende handige functies:
- Automatische knooppuntpositionering. Het script spreidt blokken uit zodat ze elkaar niet overlappen.
- Volledige nesting-ondersteuning. Objecten binnen arrays en complexe structuren krijgen leesbare bovenliggende labels.
- Strakke vector SVG-output. Graphics schalen zonder kwaliteitsverlies bij elk zoomniveau.
- Flexibele aanpassing van het uiterlijk via parameters of reguliere CSS.
Naast de JS-bibliotheek zelf verpakte de auteur de functionaliteit als een Visual Studio Code-extensie genaamd JSON Tree Visualizer. Dus voor snelle bestandsanalyse hoef je niet per se iets te integreren in je eigen project.
Snelle start in code
De bibliotheek aansluiten is eenvoudig. Geen complexe build-configuraties nodig—voeg gewoon het scriptbestand toe aan je pagina.
<script src="path/to/jsontr.ee.js"></script>
Vervolgens declareren we een container in de markup:
<div id="json-tree"></div>
En geven we data aan de generateJSONTree functie:
const jsonData = {
name: "Lou Alcalá",
projects: [
{
name: "JSONtr.ee",
description: "JSON Formatter, Validator & Viewer Online",
url: "https://jsontr.ee"
},
{
name: "PixSpeed.com",
description: "Image compressor",
url: "https://pixspeed.com"
}
]
};
const container = document.getElementById('json-tree');
container.innerHTML = generateJSONTree(jsonData);
De functie retourneert een kant-en-klare SVG-markupstring, die we direct invoegen via innerHTML.
Styling
Het uiterlijk van de grafiek is gemakkelijk aan te passen aan het kleurenschema van je interface. Er zijn twee aanpassingsbenaderingen.
De eerste optie is het doorgeven van een configuratieobject als tweede argument:
const options = {
arrowColor: "#475872",
nodeBorderColor: "#475872",
nodeBackgroundColor: "#f6f8fa",
keyColor: "#b16b2a",
valueColor: "#008000",
};
container.innerHTML = generateJSONTree(jsonData, options);
De tweede benadering is styling via CSS. Omdat de output standaard SVG is, kun je reguliere selectors toepassen op de elementen ervan:
rect {
fill: #ffffff !important;
stroke: #1e293b !important;
stroke-width: 2px !important;
}
Deze benadering komt goed van pas wanneer je een donker thema moet implementeren of stijlen dynamisch moet veranderen via classes.
Gebruiken in VS Code
Als je niet van plan bent een webinterface te bouwen en alleen logs en datadumps moet analyseren, is het handiger om een editorplugin te installeren:
- Open het Extensions-paneel in VS Code (
Ctrl+Shift+XofCmd+Shift+X). - Voer
JSON Tree Visualizerin bij de zoekfunctie. - Klik op de Install-knop.
- Open het gewenste JSON-bestand en roep de
Visualize JSON as Treecommando aan via Command Palette.
Daarna opent de editor het interactieve diagram in het volgende tabblad.
Praktische scenario's
Waar deze visualisatie echt tijd bespaart:
- Debuggen van complexe webhook- en integratie-payloads.
- Interne API-documentatie maken voor collega's of klanten.
- Junior developers trainen om boomdatastructuren te lezen.
- Configuratiebestanden met diepe nesting-niveaus visualiseren.
Het script is niet belast met onnodige abstracties, dus het is gemakkelijk in te bedden in een intern adminpaneel of monitoringdashboard.
Samenvatting
De jsontr.ee bibliotheek doet precies één ding: JSON snel en netjes omzetten in een leesbaar SVG-diagram.
De documentatie in de repository is nog beknopt, maar de code zelf is duidelijk zonder dat je hoeft te zoeken naar antwoorden. Als je regelmatig datastructuren moet uitleggen aan collega's of gewoon moe bent van het scrollen door muren van tekst bij het debuggen van API's, dan is deze tool zeker het bookmarken waard. De broncode is open onder de MIT-licentie op The-01-Company/jsontr.ee op GitHub.
Gerelateerde projecten