{
  "slug": "json-structure-analyzer",
  "name": "gizza-ai/json-structure-analyzer",
  "version": "0.1.0",
  "title": "JSON Structure Analyzer — depth, keys, types, array stats — gizza.ai",
  "description": "Analyze a JSON document's structure: max nesting depth, node counts, key frequency, per-path types, and array stats — in your browser. Free, private, no upload.",
  "tags": [
    "json structure",
    "json analyzer",
    "json depth",
    "json key frequency",
    "json stats",
    "json schema explorer"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/json-structure-analyzer/",
    "markdown": "https://gizza.ai/tools/json-structure-analyzer/index.md",
    "descriptor": "https://gizza.ai/tools/json-structure-analyzer/tool.json",
    "deep_link_example": "https://gizza.ai/tools/json-structure-analyzer/?json=%7B%20%22users%22%3A%20%5B%20%7B%20%22id%22%3A%201%2C%20%22name%22%3A%20%22Ada%22%20%7D%2C%20%7B%20%22id%22%3A%202%2C%20%22name%22%3A%20%22Bo%22%20%7D%20%5D%20%7D&format=json&top_keys=30&top_paths=50"
  },
  "cli": "gizza tool json-structure-analyzer '{ \"users\": [ { \"id\": 1, \"name\": \"Ada\" }, { \"id\": 2, \"name\": \"Bo\" } ] }'",
  "tool": {
    "description": "Analyze the structure of a JSON document (however large) without transforming it. Parses the input and reports: max nesting depth; node counts by type (objects, arrays, strings, numbers, booleans, nulls) plus total/unique keys, total values, and empty values (nulls, empty strings, empty containers); a key-frequency ranking (how often each key name occurs, recurring names counted each time); a per-path type distribution (each path with the JSON types seen there, with array indices collapsed to [] so all elements of an array share one path); array-length stats (count, min/max/avg length, total elements); byte size (raw vs minified, plus compression potential); and quality warnings (deep nesting > 5 levels, recurring keys, empty values). Options: format (json default, or text for a human-readable summary), top_keys (cap the key-frequency list, 0 = all, default 30), top_paths (cap the path list, 0 = all, default 50).",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "format": {
          "default": "json",
          "description": "Output shape. 'json' (default) returns a structured report; 'text' returns a human-readable plain-text summary of the same data.",
          "enum": [
            "json",
            "text"
          ],
          "type": "string"
        },
        "json": {
          "description": "The JSON document to analyze (object, array, or any JSON value). Parsed once; structural statistics are computed over every node.",
          "type": "string"
        },
        "top_keys": {
          "default": 30,
          "description": "Max entries in the key-frequency ranking (keys sorted by how often the name occurs). 0 lists every key. Default 30.",
          "minimum": 0,
          "type": "integer"
        },
        "top_paths": {
          "default": 50,
          "description": "Max entries in the per-path type distribution (paths sorted by node count; array indices collapse to []). 0 lists every path. Default 50.",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "json"
      ],
      "type": "object"
    }
  }
}