Skip to main content
100%

ANY JSON tree (DRAFT)

✓ Published1🌍 Public
FFarzand-e-Ali
Last edited Mar 11, 2020
Created on Mar 11, 2020

This visualization renders any JSON object as an interactive, collapsible tree using D3 v5’s `tree` layout and SVG rendering. It first converts the raw JSON into a hierarchical structure via a custom `hierarchify` function, then displays nodes with links drawn using `linkHorizontal`. The tree supports zooming through `d3.zoom` and click-to-toggle branches, with each node labeled by its key, type, and value, making it useful for exploring nested data like the included NADRA and travel records.

AI-generated description

Aim: Display ANY JSON as a selectable tree.

The idea is to be able to use d3 as a JSON-explorer / picker.

Version 1.0 using the code from World Countries Tree from Curran

Other Possible GUIs

https://bl.ocks.org/swayvil/b86f8d4941bdfcbfff8f69619cd2f460

Probably the d3.tree is what we want to use ...

1. Restructure the data into hierarchical JSON format

The JSON format expected by a d3 tree

See function hierarchify in

https://observablehq.com/@d3/collapsible-tree

Alternative ideas:

var input = [
    { "dep": "d1", "name": "name1", "size": "size1" },
    { "dep": "d1", "name": "name2", "size": "size2" },
    { "dep": "d2", "name": "name1", "size": "size3" },
    { "dep": "d2", "name": "name1", "size": "size4" }
];

var output = {
  "name": "root",
  "children": d3.groups(input, d => d.dep).map(([k, vs]) => ({ "name": k, "children": vs }))
};

2. Present the hierarchical JSON as a tree

3. Make the hierarchie interactive

…

4. Clicking a node should return the JSONPath to that node.

…

MIT Licensed

Similar vizzes