Specification: Core | Import | Alternate Names | Symbols, Units, Currencies | Validation | Conditional Composition

JSON Structure

Logo

JSON Structure is a data structure definition language that enforces strict typing, modularity, and determinism.

View the Project on GitHub json-structure

Code Generation & Schema Conversions

JSON Structure schemas can be used with Avrotize (via its structurize alias) to generate code and convert between schema formats.

Structurize

Structurize is the JSON Structure-focused interface to Avrotize. It provides commands for:

Installation

pip install avrotize

Or use the structurize alias package:

pip install structurize

Quick Start

Convert a JSON Structure schema to other formats:

# Convert JSON Structure to Protocol Buffers
structurize s2p schema.struct.json --out ./proto/

# Convert JSON Structure to XML Schema (XSD)
structurize s2x schema.struct.json --out schema.xsd

# Convert JSON Structure to GraphQL
structurize struct2gql schema.struct.json --out schema.graphql

# Convert JSON Structure to Kusto table definition
structurize s2k schema.struct.json --out schema.kql

# Convert JSON Structure to SQL table definition
structurize struct2sql schema.struct.json --out schema.sql --dialect postgres

# Convert JSON Structure to Iceberg schema
structurize s2ib schema.struct.json --out schema.iceberg.json

Code Generation

Structurize/Avrotize can generate code in multiple languages directly from JSON Structure schemas:

# Generate C# classes
structurize s2cs schema.struct.json --out ./generated/

# Generate Java classes
structurize s2java schema.struct.json --out ./generated/

# Generate Python dataclasses
structurize s2py schema.struct.json --out ./generated/

# Generate TypeScript classes
structurize s2ts schema.struct.json --out ./generated/

# Generate Go structs
structurize s2go schema.struct.json --out ./generated/

# Generate Rust structs
structurize s2rust schema.struct.json --out ./generated/

# Generate C++ classes
structurize s2cpp schema.struct.json --out ./generated/

Additional Conversions

# Convert JSON Structure to Markdown documentation
structurize struct2md schema.struct.json --out schema.md

# Convert JSON Structure to CSV schema
structurize s2csv schema.struct.json --out schema.csv

# Convert JSON Structure to Datapackage schema
structurize s2dp schema.struct.json --out datapackage.json

# Convert JSON Structure to Cassandra schema
structurize struct2cassandra schema.struct.json --out schema.cql

Supported Conversions

Source Format Target Format Command Example
JSON Structure Protocol Buffers s2p View →
JSON Structure XML Schema (XSD) s2x View →
JSON Structure JSON Schema s2j View →
JSON Structure GraphQL struct2gql View →
JSON Structure SQL (PostgreSQL) struct2sql View →
JSON Structure Iceberg s2ib View →
JSON Structure Cassandra struct2cassandra View →
JSON Structure Markdown struct2md View →
JSON Structure CSV Schema s2csv View →
JSON Structure Datapackage s2dp View →

Code Generation Commands

Target Language Command Example
C# s2cs View →
Java s2java View →
Python s2py View →
TypeScript s2ts
Go s2go View →
Rust s2rust View →
C++ s2cpp View →

Browse example schemas and see conversions in action at the Avrotize Schema Gallery.

The gallery showcases:

Resources