JSON から C# クラスへ

JSON から C# のクラスを生成します。パスカルケースのプロパティ、[JsonPropertyName] 属性、null 許容参照型、List<T> コレクションに対応。無料で安全に使えます。

System.Text.Json の属性と null 許容参照型(string?、long?)を使います。

すべてブラウザ内で実行されます。データがアップロードされることはありません。

関連ツール

すべて表示

JSON から C#とは?

JSON のサンプルを System.Text.Json 用の C# クラスに変換します。すべてのプロパティはパスカルケースで、元のキーを持つ [JsonPropertyName("…")] 属性が付き、サンプルに null や欠けている値がある場合は null 許容型になります。

JSON から C#の使い方

  1. JSON 入力 に JSON のサンプルを貼り付けます(サンプルを読み込む や ファイルを開く も使えます)。
  2. ルート型の名前 を設定します(既定は Root)。
  3. 生成された C# のコードをコピーするか、ダウンロード してファイルとして保存します。

例

入力
{"id":1,"name":"A","tags":["x"]}
出力
using System.Collections.Generic;
using System.Text.Json.Serialization;

public class Root
{
    [JsonPropertyName("id")]
    public long Id { get; set; }

    [JsonPropertyName("name")]
    public string Name { get; set; } = string.Empty;

    [JsonPropertyName("tags")]
    public List<string> Tags { get; set; } = new();
}

JSON から C#を使うべき場面

.NET の HTTP クライアント、ASP.NET のモデル、テストデータに使います。Newtonsoft.Json では属性を [JsonProperty] に置き換え、金額には double を decimal に変更することを検討してください。

JSON から C#の仕組み

サンプルを再帰的にたどり、各位置で見つかった型を集めます。オブジェクトの配列は 1 つの型にまとめられ、一部の要素にないキーはオプショナル、どこかで null になるキーは null 許容になります。整数と小数が混在する場合は浮動小数点型になり、それ以外で型が混在する場合は動的な型にフォールバックします。入れ子のオブジェクトは名前付きの型になり(キーのパスカルケースで、配列のキーは単数形にします:orders → Order)、名前が衝突した場合は数字の接尾辞が付きます。C# の出力では、整数は long、小数は double、文字列は string、真偽値は bool、配列は List<T>、入れ子のオブジェクトは独自のクラス、動的な値は object? に対応します。null 許容またはオプショナルな値には ? が付き、null 非許容の文字列は string.Empty で、リストやオブジェクトは new() で初期化されるため、null 許容参照型を有効にしてもコードがきれいにコンパイルされます。

一般的な使用例

  • HttpClient と System.Text.Json で API のレスポンスをデシリアライズする
  • ASP.NET コントローラー用のリクエスト/レスポンスモデルを作る
  • JSON の設定セクションをモデル化する
  • Azure Functions のトリガー用のクラスを生成する

よくある質問

なぜすべてのプロパティに属性が付くのですか?

C# の名前が異なっていても正確な JSON のキーを保持できるため、命名ポリシーにかかわらずシリアライズの往復が成立します。

なぜ decimal ではなく double なのですか?

JSON には decimal 型がなく、double がパーサーの出力と一致します。通貨の値には decimal を使ってください。

Newtonsoft.Json でも使えますか?

はい。[JsonPropertyName] を [JsonProperty] に、using ディレクティブも置き換えれば使えます。

他のカテゴリを見る