JSON Tools

JSON to C# Converter

Paste JSON, get a C# model for it.

Updated

This tool runs in your browser. No account or signup is required.

Common JSON to C# tasks

Developers typically reach for this page when they need to generate C# classes from JSON; convert API JSON to C# classes; create C# model from JSON. The tool is built for quick, practical work rather than a generic demo.

What matters in a json to c# workflow

When developers compare online tools for this job, the useful capabilities tend to center on nested type inference, root class naming, copy/download. This page keeps those practical needs in mind while linking to related tools when a different workflow is a better fit.

What is JSON to C#?

JSON to C# reads a JSON object and writes a C# type with one field per top-level key. Numbers become double, text becomes string, true/false becomes bool.

What problem does it solve?

Typing out model classes by hand for every API response is repetitive. Generating the first draft from a real JSON sample saves the boring part.

How to use JSON to C#

  1. Paste a JSON object into the input box.
  2. Press the convert button.
  3. Copy the generated C# code and adjust names or types to fit your project.

Example

Input

{"id":1,"name":"Ada"}

C# output

public class Root {
    public double Id { get; set; }
    public string Name { get; set; }
}

What you can do with JSON to C#

  • JSON to C#
  • Generate C# class from JSON
  • C# model from JSON

Common use cases

  • Creating models for a new API integration
  • Mocking a type from a sample response
  • Starting a DTO without typing every property

Related developer tasks

  • JSON to C#
  • Generate C# class from JSON
  • C# model from JSON

How the C# output is generated

  • The class is named Root and gets one property for each top-level key.
  • Numbers become double, true/false becomes bool and text becomes string.
  • Nested objects, arrays and null values become object, so refine those by hand.
  • Property names have their first letter capitalized: "name" becomes Name.

What to adjust after generating

  • Rename Root to something meaningful such as OrderDto.
  • Change double to int, long or decimal where the data calls for it. One sample cannot tell them apart.
  • Replace object with a real nested class or a List<T>.
  • Mark properties nullable if a field can be missing.

Matching property names when you deserialize

System.Text.Json matches property names case-sensitively by default, so a JSON key "name" will not fill a property called Name unless you allow it. Either enable case-insensitive matching or add an attribute such as [JsonPropertyName("name")]. Newtonsoft.Json matches case-insensitively by default.

var options = new JsonSerializerOptions { PropertyNameCaseInsensitive = true };
var root = JsonSerializer.Deserialize<Root>(json, options);

Related: JSON to TypeScript, JSON Formatter, JSON Validator

JSON to C# FAQ

Does it handle nested objects and arrays?

It maps top-level keys. Nested objects and arrays come out as a generic type (such as object or any), so you will want to refine those by hand.

How are field types chosen?

From the sample values: numbers, booleans and strings get matching types, anything else falls back to a generic type. One sample cannot show whether a field is optional.

Is my data sent to a server?

The processing runs in your browser, so what you paste into the tool is not uploaded for processing. As with any tool, avoid pasting live secrets you cannot afford to leak.

Can it generate nested classes?

No. It maps top-level keys only. Nested objects and arrays are typed as object, and you create the nested classes yourself.

Why are all numbers double?

A JSON sample does not show whether a number is an integer or a decimal, so the tool uses double for every number. Change it to int, long or decimal where appropriate.

Does the output work with System.Text.Json and Newtonsoft.Json?

Yes. The output is a plain class with get/set properties. Check the property-name matching described above before you deserialize.

Looking for something else? Browse all developer tools.

onlinedevelopertool.com is a collection of 54 free, browser-based utilities for the small jobs that interrupt real work: formatting a JSON response, decoding a token, converting a timestamp, generating a UUID or checking a hash. Each tool has its own page with a short explanation, a worked example and answers to common questions, so you can use it and learn what it does at the same time.

There is no account to create and nothing to install. Tools run in your browser, so the text you paste is processed on your own device. The one exception is the Website Status Checker, which sends a request from your browser to the address you enter.

Three steps: paste your input, click the tool, copy the result, all inside your browser
Popular developer utilities: JWT decoder, UUID generator, Base64 decoder, SHA-256 hash, regex tester and timestamp converter

What you can do here

  • JSON Tools

    Format, validate, beautify and minify JSON, generate C#, TypeScript, Java, Python, Go, PHP and Kotlin models from it, or convert between JSON, YAML and CSV.

  • Encoders & Decoders

    URL, Base64 and HTML encoding and decoding, plus a JWT decoder for reading token claims.

  • Generators & Hashes

    Generate UUIDs and JWTs, validate UUIDs, and create MD5, SHA-256 and SHA-512 hashes.

  • Web Tools

    Timestamps, color codes, query strings and cron expressions - the small things web work keeps throwing at you.

  • Text & Data

    Format XML and YAML, count text, change case, make slugs, test regex, diff two texts and convert number bases.

  • Website Checking

    Check whether a website or URL is reachable from your browser.

Quick developer reference

  • JSON

    Keys and strings must use double quotes, and trailing commas and comments are not allowed. Those are the three most common reasons a payload fails to parse.

    Validate JSON
  • JWT

    A JSON Web Token is three Base64URL parts joined by dots: header, payload and signature. Decoding shows the claims but does not prove the token is genuine; only signature verification does.

    Decode a JWT
  • Base64

    Base64 is an encoding, not encryption. Anyone can reverse it, and it makes data roughly one third larger, so never use it to hide secrets.

    Decode Base64
  • UUID

    A version 4 UUID is made of random bits and written as 8-4-4-4-12 hexadecimal characters. Collisions are astronomically unlikely, which is why they work well as identifiers.

    Generate a UUID
  • Timestamps

    A Unix timestamp counts time since 1 January 1970 UTC. Ten digits usually means seconds and thirteen digits usually means milliseconds.

    Convert a timestamp
  • Hashes

    MD5 is fine for quick checksums but is not safe for security. Prefer SHA-256 or SHA-512, and remember that hashing is one-way and is not encryption.

    Create a SHA-256 hash

Missing a tool you need? Visit the contact page and tell us what you reach for most often. You can also browse every tool or read the About page to see how the site is built and what it does with your data.