← ツールホーム|

JSON to C# .NET Record & Class Generator (System.Text.Json & Newtonsoft)

100% クライアントサイド処理

JSONペイロードを、System.Text.Jsonの[JsonPropertyName]やNewtonsoft.Jsonの属性を付与した、厳密に型付けされたC#のレコード、クラス、構造体へ変換します。

生成されたC#コード
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

namespace GeneratedModels
{
    public record OrderPayload
    {
        [JsonPropertyName("orderId")]
        public string? OrderId { get; init; }
    
        [JsonPropertyName("customer")]
        public Customer? Customer { get; init; }
    
        [JsonPropertyName("items")]
        public List<Item?>? Items { get; init; }
    
        [JsonPropertyName("billingAddress")]
        public BillingAddress? BillingAddress { get; init; }
    
        [JsonPropertyName("totalAmount")]
        public double TotalAmount { get; init; }
    
        [JsonPropertyName("currency")]
        public string? Currency { get; init; }
    
        [JsonPropertyName("isDelivered")]
        public bool IsDelivered { get; init; }
    
        [JsonPropertyName("deliveryNotes")]
        public object? DeliveryNotes { get; init; }
    }

    public record BillingAddress
    {
        [JsonPropertyName("street")]
        public string? Street { get; init; }
    
        [JsonPropertyName("city")]
        public string? City { get; init; }
    
        [JsonPropertyName("stateOrProvince")]
        public string? StateOrProvince { get; init; }
    
        [JsonPropertyName("postalCode")]
        public string? PostalCode { get; init; }
    
        [JsonPropertyName("country")]
        public string? Country { get; init; }
    }

    public record Item
    {
        [JsonPropertyName("sku")]
        public string? Sku { get; init; }
    
        [JsonPropertyName("name")]
        public string? Name { get; init; }
    
        [JsonPropertyName("quantity")]
        public int Quantity { get; init; }
    
        [JsonPropertyName("unitPrice")]
        public double UnitPrice { get; init; }
    
        [JsonPropertyName("discounts")]
        public List<int>? Discounts { get; init; }
    
        [JsonPropertyName("inStock")]
        public bool InStock { get; init; }
    }

    public record Customer
    {
        [JsonPropertyName("id")]
        public int Id { get; init; }
    
        [JsonPropertyName("fullName")]
        public string? FullName { get; init; }
    
        [JsonPropertyName("email")]
        public string? Email { get; init; }
    
        [JsonPropertyName("isPremiumMember")]
        public bool IsPremiumMember { get; init; }
    
        [JsonPropertyName("registeredAt")]
        public DateTimeOffset RegisteredAt { get; init; }
    }
}
生成されたクラス / レコード数
4 records
合計プロパティ数
24 properties mapped
JSONペイロードサイズ
.NET 8+ / C# 12 ready
技術リファレンス&アーキテクチャガイド

JSON to C# .NET Record & Class Generator (System.Text.Json & Newtonsoft) — リファレンスガイド

JSONペイロードを、System.Text.Jsonの[JsonPropertyName]やNewtonsoft.Jsonの属性を付与した、厳密に型付けされたC#のレコード、クラス、構造体へ変換します。

主要パラメータ&設定項目

targetTypestring (enum: record | class | struct)

生成するC#の宣言モデルを定義します。'record'はinit専用セッターを持つイミュータブルな位置指定レコード、'class'は標準的な参照型、'struct'は軽量な値型を出力します。

serializerLibrarystring (enum: System.Text.Json | Newtonsoft.Json | None)

プロパティに付与するシリアライズ属性セットを選択します。モダン.NET向けの[JsonPropertyName("...")]や、Json.NET向けの[JsonProperty("...")]などを指定できます。

nullabilityHandlingstring (enum: nullableReferenceTypes | optionalPrimitives | nonNullable)

C# 8以降のNull許容参照型(NRT)のフォーマットを設定します。JSON上で欠落またはnullのプロパティを'?'付き(例: string?, int?)にするか、厳密な非Null型にするかを指定します。

namingConventionstring (enum: PascalCase | camelCase | preserve)

生成されるC#シンボルのプロパティ名フォーマットを決定します。元のJSONキーとのマッピングはシリアライズ属性によって保持されます。

プロの活用テクニック&推奨設定

よくあるトラブルと解決策

数値やDateTimeフィールドに空文字列("")が含まれている場合、System.Text.JsonがJsonException: 'The JSON value could not be converted'をスローする。

カスタムJsonConverter(緩やかなintやDateTimeのパーサー)を実装するか、ジェネレーターでNull許容型(int?, DateTime?)を出力するよう設定した上で、空文字列の前処理パーサーまたはカスタム`JsonConverter<T>`を適用してください。

同じキー名を持つ匿名サブオブジェクトを含むネストされたJSON配列をパースすると、生成されるC#クラス名が競合する。

ジェネレーター設定で階層型のプレフィックス付与または名前空間によるスコープ分割を有効化し、汎用的な衝突回避サフィックスではなく一意の型識別子(例: OrderBillingAddress vs. UserBillingAddress)を割り当ててください。

C#の予約済みキーワード('params', 'class', 'event', 'object'など)と同名のプロパティが存在すると、生成されたコードでコンパイルエラーが発生する。

`[JsonPropertyName("class")]`や`[JsonProperty("class")]`で正確なJSONマッピングを維持しつつ、予約済み識別子の先頭に'@'プレフィックス(例: `@class`, `@event`)を付与してエスケープしてください。

よくある質問 (FAQ)

▼

▼

▼

▼

関連するおすすめ開発ツール

すべてのツール →
Nginx & Apache アクセスログパーサー(メトリクス、ステータスコード & GeoIP)developer

ローカル環境でNginxおよびApacheの生アクセスログを解析し、HTTPステータスコード分布、リクエスト頻出URL(Top URLs)、ユニーククライアントIP、帯域幅メトリクス、およびカスタム正規表現によるパターンマッチングを提供します。

ツールを開く→
GraphQL SDL to JSON Schema & OpenAPI コンバーターdeveloper

GraphQL SDL のスキーマ定義、型、クエリ、ミューテーションを、標準的な JSON Schema Draft-07 および OpenAPI コンポーネントスキーマへ直接変換します。

ツールを開く→
Crontab構文&Quartzスケジュール式 チートシートdeveloper

5フィールドPOSIX規格および6フィールドQuartz形式のcron式完全リファレンス。特殊マクロ、実行周期計算、多重起動防止策を徹底解説。

ツールを開く→
JavaScript正規表現(RegEx)構文仕様・チートシートdeveloper

ECMAScript準拠の正規表現構文、キャプチャグループ(名前付き・非キャプチャ)、置換トークン($1, $&)、先読み・後読みの技術解説。

ツールを開く→
URLエンコード・デコードツールdeveloper

RFC 3986厳格規格、encodeURIComponent、encodeURI、formUrlEncodedに対応した高速・安全な双方向URL変換ツール。

ツールを開く→
HTML実体参照エンコード・デコードツールdeveloper

名前付き実体参照、10進数参照、16進数参照を相互変換し、XSS攻撃を防ぎ特殊記号を正しく表示する高速エスケープツール。

ツールを開く→