JSON Forge
100% Client-Side: your data is never sent to a server

JSON to TypeScript

Generate clean TypeScript interfaces from any JSON sample. Nested objects become named interfaces, arrays are merged into one element type, and fields missing from some items become optional.

Loading editor…
Paste or type JSON on the left to explore it as a tree.
Empty🔒 Processed locally in your browser

How to convert JSON to TypeScript

  1. Paste a representative JSON sample (an API response works well) into the editor.
  2. Open the Code tab and pick TypeScript. Set the root interface name if you like.
  3. Copy the generated interfaces into your project.

How the types are inferred

The generator reads every element of an array and merges their shapes. Whole numbers and decimals both become number, mixed value types become union types such as string | null, and objects with the same structure share one interface instead of producing duplicates.

Tips for accurate types

Use a sample that includes the optional and nullable cases, ideally several records rather than one. A single example cannot reveal that a field is sometimes missing. Treat the output as a starting point and tighten it, for example by replacing string with a literal union.

What is JSON?

JSON (JavaScript Object Notation) is a lightweight, text-based data format that is easy for people to read and for machines to parse. It is the de facto standard for web APIs, configuration files and data exchange between services. A JSON document is built from just six value types: objects, arrays, strings, numbers, booleans and null.

{
  "name": "Ada",
  "age": 36,
  "admin": true,
  "skills": ["math", "code"],
  "address": { "city": "London" },
  "manager": null
}

JSON is stricter than JavaScript object literals: keys and strings must use double quotes, trailing commas are not allowed and comments are not part of the specification (RFC 8259).

Why format JSON?

APIs usually return minified JSON on a single line, which is efficient for machines but unreadable for people. Formatting (also called pretty printing or beautifying) adds consistent indentation and line breaks so that you can scan the structure, spot mistakes and review changes. Minifying does the opposite and strips whitespace to reduce size.

Frequently asked questions

How are optional fields detected?

When a key appears in some objects of an array but not in others, it is emitted as optional (key?: type). Fields whose values differ in type become union types.

Should I use interface or type?

The generator emits interfaces for objects, which are easy to extend and give clearer error messages. Rename or convert them freely.

Is my JSON uploaded to a server?

No. Parsing, validation, formatting, diffing and code generation all run inside your browser, using a Web Worker. Your data is never sent to any server, which makes the tool safe for API responses, configuration files and other sensitive payloads.

How large a JSON file can I open?

Files of 20 MB and more work. Parsing happens off the main thread and the tree view is virtualized, so only the rows you can see are rendered. The editor switches to a lighter mode for very large documents.

What is the difference between formatting and minifying JSON?

Formatting (pretty printing) adds line breaks and indentation so people can read the data. Minifying removes all optional whitespace to make the payload as small as possible for network transfer or storage. Both produce identical data.

More JSON tools