Tool Kumarのツール

JSONをC#のクラスに変換

System.Text.Json用のC#モデルを生成します。デフォルトの出力では、各プロパティにJsonPropertyName属性を付け、すべてのサンプルレコードに存在するフィールドにはrequiredを使います。

このツールの使い方

  1. フィールドが異なるレコードも含めて、代表的なレスポンスを貼り付けます。
  2. 生成された出力を確認し、必要に応じてルート名を変更します。
  3. コードをコピーまたはダウンロードし、型がAPI仕様と合っているか確認します。

実行例

この出力は組み込みの変換機能で生成したものです。2つのitemのpriceからは浮動小数点数のフィールドが、nullと文字列のnoteからはnull許容のフィールドが推論されます。

入力

{
  "user-id": 42,
  "profile": {
    "city": "London",
    "created_at": "2026-10-14T09:00:00Z"
  },
  "items": [
    {
      "price": 12,
      "note": null
    },
    {
      "price": 12.5,
      "note": "gift"
    }
  ]
}

出力

using System.Collections.Generic;
using System.Text.Json.Serialization;

public class Root
{
    [JsonPropertyName("user-id")]
    public required long UserId { get; set; }

    [JsonPropertyName("profile")]
    public required Profile Profile { get; set; }

    [JsonPropertyName("items")]
    public required List<Item> Items { get; set; }
}

public class Profile
{
    [JsonPropertyName("city")]
    public required string City { get; set; }

    [JsonPropertyName("created_at")]
    public required string CreatedAt { get; set; }
}

public class Item
{
    [JsonPropertyName("price")]
    public required double Price { get; set; }

    [JsonPropertyName("note")]
    public required string? Note { get; set; }
}

System.Text.Jsonでデシリアライズする

クラスを.NETプロジェクトにコピーし、null許容注釈を有効にします。JsonPropertyName属性によって、PascalCaseのプロパティが入力のキーと正確に対応付けられます。

System.Text.Jsonがrequiredメンバーに対応している.NETのバージョン(.NET 7以降など)を使ってください。シリアライザーのオプションは、アプリケーションに合わせて設定します。

using System.Text.Json;

Root? model = JsonSerializer.Deserialize<Root>(responseBody);

オプションと注意点

  • デフォルトはSystem.Text.Jsonです。「その他のオプション」で「Newtonsoft」を選ぶと、Newtonsoft.JsonのJsonProperty属性が付き、不明な値にはJTokenが使われます。
  • 生成されるrequiredメンバーには、C# 11以降が必要です。null許容参照型の構文は、null許容注釈が有効になっていることを前提としています。
  • 整数はlong、符号付き64ビットを超える整数はdecimal、小数はdoubleになります。decimalにも範囲の上限があるため、さらに大きな値には独自の表現を選んでください。
  • すべてのレコードにキーがあれば、null許容のフィールドでもrequiredになることがあります。キーの存在が必須であることと、nullを受け付けることは別のルールです。日付はstringのままです。

標準でプライバシーを保護

ドキュメントはこのブラウザー内に残ります。Tool Kumarは、解析、変換、ダウンロードファイルの作成を端末内で行います。アカウント登録やアップロードの手順はありません。

JSONをC#のクラスに変換のよくある質問

System.Text.JsonとNewtonsoft.Jsonのどちらを使いますか?
デフォルトはSystem.Text.Jsonで、JsonPropertyName属性を使います。変換ツールの「その他のオプション」メニューで「Newtonsoft」を選ぶと、代わりにNewtonsoft.JsonのJsonProperty属性を出力します。
出力にはどのバージョンのC#が必要ですか?
requiredメンバーにはC# 11以降が必要です。string?などの参照型の注釈を意図どおりに使うには、null許容参照型を有効にしてください。
requiredのプロパティがnull許容にもなるのはなぜですか?
キーはすべてのサンプルレコードに現れますが、値はnullの場合があるためです。たとえばrequired string? Noteは、キーの存在と値の型を別々に表しています。
リストやネストしたクラスも生成されますか?
はい。オブジェクトの配列はList<Item>になり、ネストした構造ごとにクラスが生成されます。

関連ツール

JSONをJavaのrecordに変換、JSONをTypeScriptの型に変換、JSON Schema生成。