JSONをC#に変換
JSONをC#クラスとPOCOオブジェクトに変換して.NET開発用に
JSON入力
C#出力
JSONをC#とは?
.NETアプリにサードパーティのAPIを組み込む際、JSONドキュメントは手に入るものの、レスポンスをデシリアライズするためには型付きC#クラスが必要になります。深くネストされたオブジェクトを手作業で書くのは大変です。このツールはJSONからC# POCOを自動生成します。サンプルのAPIレスポンスを貼り付けると、プロジェクトにすぐ組み込めるクラス定義が得られます。System.Text.Json や Newtonsoft.Json でそのまま使えます。
変換はブラウザで実行されます。設定でクラス名、プロパティ/フィールド、Nullable型を選択できます。サーバーには送信されません。
使い方
JSONを貼り付け
左のエディタにJSONを貼り付けるか、ファイルをアップロードしてください。サンプルで例データを読み込めます。設定でルートクラス名とオプションを設定してください。
クラスを確認
右パネルに生成されたC#クラスが表示されます。ネストオブジェクトは別クラスに。配列はList<T>またはT[]になります。
コピーまたはダウンロード
コピーまたはダウンロードでコードを取得してください。先にJSONをフォーマットするにはJSONフォーマッターを、検証にはJSONバリデーターを使用してください。
JSONをC#の例
JSONオブジェクトからC#クラスを生成する例です。
例:加入者レコード
JSON入力:
生成されたC#出力:
JSONをC#が役立つ場面
.NET、ASP.NET Core、BlazorでREST API統合時にC#型が必要です。サンプルレスポンスを貼り付けるとJsonSerializer.Deserialize<T>()で使えるPOCOが得られます。
JSONをC#の例
例:JSONオブジェクトをC#クラスに変換
JSON入力:
{"subscriberId":"SUB-001","planName":"プレミアム4G","dataLimit":"50GB","voiceMinutes":500,"status":"有効"}生成されたC#クラス:
public class RootObject
{
public string SubscriberId { get; set; }
public string PlanName { get; set; }
public string DataLimit { get; set; }
public int VoiceMinutes { get; set; }
public string Status { get; set; }
}よくある質問
C#でJSONをデシリアライズするには?
System.Text.Json の JsonSerializer.Deserialize<YourClass>(jsonString)、またはNewtonsoft.Jsonの JsonConvert.DeserializeObject<YourClass>(jsonString) を使います。対応するC#クラスが必要です — JSONを貼り付けてここで生成できます。
JSONキーがC#の命名規則に合わない場合は?
プロパティに [JsonPropertyName("json_key")](System.Text.Json)または [JsonProperty("json_key")](Newtonsoft)を付けます。または JsonSerializerOptions.PropertyNamingPolicy を JsonNamingPolicy.CamelCase に設定して自動マッピングも可能です。
C#のNullable参照型はどうなりますか?
設定でNullable Typesを有効にすると string?、int? などが生成されます。JSONフィールドがnullや欠損の可能性がある場合に便利です。#nullable enable またはnullable対応のプロジェクト設定が必要です。
JSONがサーバーに送信されることはありますか?
いいえ。クラス生成はブラウザ内で完全に実行されます。JSONがあなたのマシンを離れることはないので、本番APIキーや機密データでも安全に使用できます。
プロパティとフィールド、どちらを使えばよいですか?
プロパティ(get; set;)はC#のDTOにおける標準です。System.Text.JsonとNewtonsoft.Jsonはどちらも、デフォルトでパブリックプロパティをシリアライズします。フィールドも動作しますが、データ転送オブジェクトには一般的ではありません。
関連ツール
System.Text.Json、Newtonsoft.Json、JSON仕様、RFC 8259を参照してください。