DevBolt
Processed in your browser. Your data never leaves your device.

JSON to Python Dataclass Generator

Generate Python dataclasses with full type annotations from any JSON structure. Nested objects become separate dataclasses, arrays get proper list[T] hints, and null values become Optional.

← Back to tools

JSON to Code Generator

Generate typed code from JSON in 8 languages — Go structs, Python dataclasses, Java/C#/Dart/Kotlin classes, Rust/Swift structs. Handles nested objects, arrays, and null values.

Supported Languages

LanguageOutput TypeSerialization
GoStructs with json tagsencoding/json
PythonDataclasses with type hintsdataclasses
JavaClasses with getters/settersJackson / Gson
C#Classes with JsonPropertyNameSystem.Text.Json
DartClasses with fromJson/toJsondart:convert
RustStructs with serde deriveserde
SwiftCodable structsCodable
KotlinData classes with @Serializablekotlinx.serialization

How It Works

  • Nested objects — each nested object becomes a separate named type/class/struct, referenced by the parent.
  • Arrays — element types are inferred from the first item. Object arrays merge all items for complete field coverage.
  • Numbers — integers and floats are detected automatically (e.g., int64 vs float64 in Go).
  • Null values — mapped to each language's nullable/optional type (e.g., Any? in Kotlin, Option in Rust).
  • Naming conventions — field names follow each language's idiom (camelCase, snake_case, PascalCase) with JSON key annotations.
  • Everything runs in your browser — no data is sent over the network.

Why Dataclasses Over Dicts?

Python dataclasses provide type safety, IDE autocompletion, and self-documenting code compared to raw dictionaries. They also support default values, comparison, and hashing out of the box. This generator creates ready-to-use dataclasses from your JSON.

Type Hint Inference

The generator maps JSON types to Python types: strings to str, booleans to bool, integers to int, floats to float, nulls to Optional[Any], and arrays to list[T]. Nested objects become separate dataclass definitions.

Snake Case Naming

Python convention uses snake_case for variable names. The generator automatically converts camelCase JSON keys to snake_case field names, following PEP 8 naming conventions.

Frequently Asked Questions

Does this generate Pydantic models?

This tool generates standard library dataclasses. You can easily convert the output to Pydantic models by replacing @dataclass with BaseModel inheritance and adjusting the syntax.

How are nested objects handled?

Each nested JSON object becomes a separate @dataclass with a name derived from the parent class and field name. Dependencies are ordered so child classes are defined before parents.

What imports are included?

The generated code includes imports for dataclass from dataclasses and Any, Optional from typing. You only need to add these to your project's standard library.

Related Convert Tools