Convert JSON to Swift in one step
Paste JSON and get Swift structs that conform to Codable, ready to decode with JSONDecoder in iOS, macOS, watchOS or server-side Swift.
How to use it
- Paste a JSON sample into the Input panel, open a file, or drop it onto the page. A sample is already loaded so you can see the result.
- The Swift code appears instantly in the Output panel and updates as you type.
- Rename the top-level type under Settings → Root type name, and use Sort keys to order fields alphabetically.
- Copy the code or Download it as
Root.swift.
What the Swift generator produces
struct … : Codablefor every object, withletproperties.- A
CodingKeysenum only when Swift names differ from the JSON keys. - Optional and nullable values become optionals (
String?). - Mixed or null-only values use a small, included
JSONAnyenum.
Using the generated Swift code
Decode with JSONDecoder:
let decoder = JSONDecoder()
let data = try decoder.decode(Root.self, from: jsonData)
print(data.users[0].name)
More JSON tools
All tools are free and run privately in your browser.
JSON FormatterBeautify, validate & convert
JSON ValidatorFind errors by line and column
JSON ViewerCollapsible tree with search
JSON MinifierCompress JSON, see bytes saved
JSON RepairFix broken JSON automatically
JSONPath TesterQuery and filter JSON
JSON EscapeStringify and unescape JSON
JSON to YAMLReadable YAML for configs
JSON to CSVArrays to spreadsheet rows
JSON to XMLWell-formed XML output
CSV to JSONSpreadsheets to JSON arrays
JSON Schema GeneratorInfer a draft 2020-12 schema
JSON to TypeScriptInterfaces with optional fields
JSON to GoStructs with json tags
JSON to JavaRecords with Jackson annotations
JSON to KotlinData classes for kotlinx.serialization
JSON to SwiftCodable structs with CodingKeys
JSON to DartFlutter models with fromJson
JSON to C#Classes for System.Text.Json
JSON to C++Structs for nlohmann/json
JSON to CTyped structs for C
JSON to PHPReadonly DTO classes
JSON to PythonDataclasses with type hints
JSON to Swift FAQ
What is JSONAny?
When a field has mixed types, or only null in your sample, the generator adds a small JSONAny enum that can decode and encode any JSON value.
Can I use snake_case conversion instead of CodingKeys?
Yes. Set decoder.keyDecodingStrategy = .convertFromSnakeCase and remove the CodingKeys enums for snake_case keys.
Is my data uploaded to a server?
No. The JSON to Swift runs entirely in your browser using JavaScript. Your data is never uploaded, logged or stored, and the tool keeps working offline after your first visit.