Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Guide to JSON Crack for visualizing complex JSON data structures
.claude/skills/brycewang-stanford-json-data-visualizer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 120% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 119% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -31% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -57% | 0% |
JSON Crack (formerly JSON Visio) is an open-source data visualization tool with over 43K stars on GitHub that transforms JSON, YAML, XML, TOML, and CSV data into interactive graph diagrams. Instead of reading raw nested data structures, researchers can instantly see the hierarchical relationships, nested objects, and array structures as a navigable node-link diagram rendered on an infinite canvas.
For academic researchers, JSON Crack is particularly valuable when working with complex API responses, configuration files, experimental metadata schemas, and nested data exports. Bioinformatics researchers dealing with deeply nested gene ontology JSON files, social scientists working with survey platform API responses, and computational researchers inspecting machine learning model configuration files all benefit from being able to see their data structures visually rather than scrolling through thousands of lines of text.
The tool is available as a hosted web application at jsoncrack.com, as a self-hosted Docker deployment for institutional use, and as an embeddable React component that can be integrated into custom research tools. It also provides an API for programmatic access, making it suitable for integration into data processing pipelines.
The fastest way to use JSON Crack is through the web interface. Paste or upload JSON data and the visualization renders immediately.
bash# Clone the repository git clone https://github.com/AykutSarac/jsoncrack.com.git cd jsoncrack.com # Install dependencies npm install # Start development server npm run dev # Or build and serve for production npm run build npm start
bash# Run with Docker docker run -d -p 8888:8080 \ --name json-crack \ --restart unless-stopped \ jsoncrack/jsoncrack # Access at http://localhost:8888
yamlversion: "3.8" services: json-crack: image: jsoncrack/jsoncrack container_name: json-crack ports: - "8888:8080" restart: unless-stopped
Researchers frequently work with complex nested JSON structures for experimental metadata. JSON Crack makes these immediately readable.
json{ "experiment": { "id": "EXP-2026-0142", "title": "Effect of Temperature on Protein Folding Kinetics", "principal_investigator": { "name": "Dr. Jane Smith", "orcid": "0000-0002-1234-5678", "affiliation": "Department of Biochemistry" }, "protocol": { "version": "3.2", "steps": [ { "order": 1, "name": "Sample Preparation", "duration_minutes": 120, "equipment": ["centrifuge", "spectrophotometer"], "parameters": { "temperature_celsius": 25, "buffer_ph": 7.4, "concentration_mm": 0.5 } }, { "order": 2, "name": "Thermal Denaturation", "duration_minutes": 180, "temperature_range": { "start": 25, "end": 95, "step": 1, "unit": "celsius" } }, { "order": 3, "name": "Data Acquisition", "instrument": "circular_dichroism_spectrometer", "wavelength_range_nm": [190, 260] } ] }, "samples": [ { "id": "S001", "condition": "wild_type", "replicates": 3, "measurements": { "tm_celsius": 68.2, "delta_h_kcal": -45.3, "r_squared": 0.997 } } ] } }
When loaded into JSON Crack, this structure displays as an interactive tree diagram where each nested object becomes a card node, arrays show their elements as connected child nodes, and researchers can click to expand or collapse sections for focused exploration.
When working with research APIs (PubMed, CrossRef, OpenAlex, etc.), responses are often deeply nested. JSON Crack helps researchers understand the response schema before writing parsing code.
pythonimport requests import json # Fetch metadata from CrossRef API response = requests.get( "https://api.crossref.org/works/10.1038/nature12373" ) data = response.json() # Save for visualization in JSON Crack with open("crossref_response.json", "w") as f: json.dump(data, f, indent=2) # Open crossref_response.json in JSON Crack to explore the schema # This reveals the nested structure of author arrays, funding info, # reference lists, and license metadata
JSON Crack provides a React component that can be embedded in custom research tools.
tsximport { JsonCrackEmbed } from "jsoncrack-react"; import { useState } from "react"; function DataSchemaViewer({ experimentData }) { const [jsonContent, setJsonContent] = useState( JSON.stringify(experimentData, null, 2) ); return ( <div style={{ width: "100%", height: "600px" }}> <h3>Experiment Data Schema</h3> <JsonCrackEmbed json={jsonContent} style={{ width: "100%", height: "100%" }} /> </div> ); }
html<iframe src="https://jsoncrack.internal.lab/widget" width="100%" height="600" style="border: 1px solid #e5e7eb; border-radius: 8px;" ></iframe>
JSON Crack handles multiple data serialization formats commonly used in research.
The primary format. Supports nested objects, arrays, primitives, and null values. JSON Schema validation is available to verify data conforms to expected structures.
Common in configuration files for research software, CI/CD pipelines, and computational workflow definitions (e.g., Snakemake, Nextflow configs).
yamlpipeline: name: rnaseq-analysis steps: - name: quality-control tool: fastqc input: raw_reads/*.fastq.gz - name: trimming tool: trimmomatic parameters: min_length: 36 quality_threshold: 20 - name: alignment tool: star genome_index: /ref/hg38
Tabular data from experiments and surveys can be visualized to understand column relationships and data types.
Used in Python project configuration (pyproject.toml), Rust cargo files, and various research tool configurations.
Use JSON Crack to generate visual documentation of your lab's data schemas. Export the visualization as an image for inclusion in lab manuals, onboarding documents, or data management plans.
When building research APIs with FastAPI or Flask, use JSON Crack to visualize and verify your API response structures during development.
Before processing large datasets, visualize a sample record in JSON Crack to verify the structure matches expectations. This is faster than writing validation code for initial inspection.
When data schemas evolve between experiment versions, visualize both versions side-by-side to identify structural differences and plan migration logic.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 6,830 | 7,467 | +9% | 1 | 1 | 0% | 1,272 | 2,804 | +120% | 0 | 0 | — |
case-02 | fail→pass | 14,806 | 15,931 | +8% | 1 | 1 | 0% | 3,191 | 4,974 | +56% | 0 | 0 | — |
case-03 | fail→fail | 9,499 | 13,701 | +44% | 1 | 1 | 0% | 2,031 | 3,934 | +94% | 0 | 0 | — |
case-04 | fail→pass | 10,697 | 5,818 | -46% | 1 | 1 | 0% | 1,284 | 2,816 | +119% | 0 | 0 | — |
case-05 | pass→pass | 6,542 | 2,113 | -68% | 1 | 1 | 0% | 1,230 | 2,431 | +98% | 0 | 0 | — |
case-06 | fail→fail | 7,577 | 4,708 | -38% | 1 | 1 | 0% | 1,115 | 2,759 | +147% | 0 | 0 | — |
case-07 | fail→pass | 17,789 | 1,981 | -89% | 1 | 1 | 0% | 3,358 | 2,329 | -31% | 0 | 0 | — |
case-08 | fail→pass | 29,018 | 2,351 | -92% | 1 | 1 | 0% | 5,498 | 2,361 | -57% | 0 | 0 | — |
case-09 | fail→pass | 11,061 | 1,569 | -86% | 1 | 1 | 0% | 1,714 | 2,202 | +28% | 0 | 0 | — |
case-10 | fail→pass | 6,288 | 2,410 | -62% | 1 | 1 | 0% | 958 | 2,262 | +136% | 0 | 0 | — |
case-11 | pass→pass | 13,047 | 5,885 | -55% | 1 | 1 | 0% | 2,161 | 3,160 | +46% | 0 | 0 | — |
case-12 | pass→pass | 14,931 | 10,661 | -29% | 1 | 1 | 0% | 2,098 | 4,018 | +92% | 0 | 0 | — |
case-13 | fail→pass | 13,676 | 12,394 | -9% | 1 | 1 | 0% | 2,356 | 3,866 | +64% | 0 | 0 | — |
case-14 | pass→pass | 3,960 | 2,290 | -42% | 1 | 1 | 0% | 674 | 2,443 | +262% | 0 | 0 | — |
case-15 | fail→pass | 11,993 | 3,197 | -73% | 1 | 1 | 0% | 2,120 | 2,456 | +16% | 0 | 0 | — |
case-16 | fail→pass | 15,986 | 2,116 | -87% | 1 | 1 | 0% | 2,925 | 2,328 | -20% | 0 | 0 | — |
case-17 | fail→pass | 10,455 | 1,756 | -83% | 1 | 1 | 0% | 1,574 | 2,309 | +47% | 0 | 0 | — |
case-18 | pass→pass | 9,794 | 8,136 | -17% | 1 | 1 | 0% | 1,448 | 3,136 | +117% | 0 | 0 | — |
case-19 | pass→pass | 10,378 | 5,357 | -48% | 1 | 1 | 0% | 1,765 | 2,839 | +61% | 0 | 0 | — |
case-20 | pass→fail | 9,783 | 13,380 | +37% | 1 | 1 | 0% | 2,138 | 4,604 | +115% | 0 | 0 | — |
case-21 | pass→pass | 5,025 | 5,016 | -0% | 1 | 1 | 0% | 992 | 2,923 | +195% | 0 | 0 | — |
case-22 | pass→pass | 8,219 | 14,147 | +72% | 1 | 1 | 0% | 1,607 | 4,805 | +199% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.