JSON から C#
内容はまだありません
無料オンラインJSONからC#ツール。APIレスポンスや設定JSONをワンクリックで、ASP.NET Core、Unity、Blazor、.NET MAUIプロジェクトで直接使用できる標準C#クラスに変換。[JsonProperty]アノテーション、Listジェネリック、Nullable<T>、ネストされたクラスの自動分割に対応、完全にブラウザローカルで生成します。
内容はまだありません
無料オンラインJSONからC#ツール。APIレスポンスや設定JSONをワンクリックで、ASP.NET Core、Unity、Blazor、.NET MAUIプロジェクトで直接使用できる標準C#クラスに変換。[JsonProperty]アノテーション、Listジェネリック、Nullable<T>、ネストされたクラスの自動分割に対応、完全にブラウザローカルで生成します。
JSONからC#は、JSON形式のデータ(オブジェクトまたは配列)をC#クラス定義(POCO、Plain Old CLR Object)に変換するプロセスです。C#は.NETエコシステムの主力言語であり、ASP.NET Coreバックエンド、Unityゲーム、.NET MAUIクロスプラットフォームアプリ、Blazor WebAssembly、デスクトップアプリ(WPF/WinForms)、Azureクラウドサービスなどのシナリオで広く使用されています。開発中、APIドキュメントや実際のレスポンスのJSONサンプルをC#型に変換する必要が頻繁にあります。手動でクラスを書くのは反復作業が多いだけでなく、フィールド型やアノテーションを書き間違えやすいため、本ツールはこのプロセスを自動化することを目標としています。
本ツールはquicktype-coreに基づいてブラウザローカルで実行され、C#レンダラーを使用して標準的なPOCOクラスコードを生成します。デフォルト出力にはusing System.Collections.Generic;と[JsonProperty("元のkey")]アノテーション(Newtonsoft.Json互換モード)が含まれ、Visual Studioで直接開いてコンパイルできます。これは単なる型ドラフトではなく、.NETプロジェクトに配置してNuGetパッケージと組み合わせればすぐに使用できるC#クラスです。
型推論はJSONからC#のコアです。ツールはJSONの基本型を.NET標準型にマッピングします:文字列 → string、整数 → long、浮動小数点数 → double、ブール値 → bool、配列 → List<T>、ネストされたオブジェクト → 独立したclass、null値 → Nullable<T>(例: long? / bool? / string?)。ネストされたオブジェクトについては、ツールは自動的に各階層に新しいclassを作成し、フィールド名の先頭大文字で命名します。例えばaddressフィールドはAddressクラスを生成し、items配列内のオブジェクトはItemクラスを生成します。
モダンC#構文との統合:本ツールはデフォルトでシリアライズ可能なPOCO(パブリック{ get; set; }プロパティ)を生成します。イミュータビリティを重視するプロジェクトでは、開発者はclassをC# 9+のrecord型に変更し、{ get; set; }をinit-onlyプロパティ(public string Name { get; init; })に変更できます。JsonSerializer.Deserialize<T>(jsonString)と組み合わせることで、コンパイル時にデータが変更されないことを保証できます。これはASP.NET Core 7+のMinimal API、Entity Framework Core 8+のイミュータブルエンティティ設計トレンドと一致しています。
JSONをサーバーにアップロードして処理する必要のある一部のオンラインツールとは異なり、本ツールのすべての計算はブラウザ内で完了します。quicktype-coreはWeb Workerを介してロードおよび実行され、JSON解析、型推論、C#コード生成、ファイルダウンロードはすべてローカルで行われ、いかなるサーバーにもデータを送信しません。これはAPIキー、ユーザープライバシーフィールド、未公開ビジネス構造を含むJSONにとって特に重要であり、ページを閉じるとデータはメモリから消去されます。
注意すべき点として、自動生成されるコードは出発点であり終着点ではありません。ツールはJSONサンプルに基づいて型を推論するため、ビジネス上の正確な型(例えばURL、Email、IDなどのセマンティック型はすべてstringと推論されます)を判断することはできません。snake_caseのJSONフィールドについては、C#フィールドはPascalCase命名(user_name → UserName)を維持しますが、[JsonProperty("user_name")]アノテーションは元のkeyを保持し、デシリアライズ時に自動的にマッピングされます。生成結果を最初のドラフトとして扱い、プロジェクト仕様に従ってフィールド名、型、属性を微調整することを推奨します。
ASP.NET Coreプロジェクトで最も一般的な使用法:本ツールが生成したPOCOをNewtonsoft.JsonでAPIレスポンスをデシリアライズ。
using Newtonsoft.Json;
using System;
using System.Net.Http;
using System.Threading.Tasks;
public class ApiClient
{
private static readonly HttpClient _http = new HttpClient();
// 本ツールが生成したPOCO:
public class User
{
[JsonProperty("id")]
public long Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("email")]
public string Email { get; set; }
[JsonProperty("is_active")]
public bool? IsActive { get; set; }
}
public static async Task<User> GetUserAsync(int userId)
{
// 1) APIを呼び出してJSON文字列を取得
var json = await _http.GetStringAsync($"https://api.example.com/users/{userId}");
// 2) 本ツールが生成したPOCOにデシリアライズ
// 内部で[JsonProperty("id")]などのアノテーションに従ってsnake_case JSONを自動マッピング
var user = JsonConvert.DeserializeObject<User>(json);
Console.WriteLine($"User: {user.Name} ({user.Email})");
return user;
}
}本ツールが生成したUser POCOをASP.NET Core Controllerに配置し、[FromBody]と組み合わせてフロントエンドJSONリクエストを自動受信。
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
// 本ツールが生成したPOCO(デフォルトでNewtonsoft [JsonProperty]を使用):
public class CreateOrderRequest
{
[Newtonsoft.Json.JsonProperty("user_id")]
public long UserId { get; set; }
[Newtonsoft.Json.JsonProperty("items")]
public List<OrderItem> Items { get; set; }
}
public class OrderItem
{
[Newtonsoft.Json.JsonProperty("product_id")]
public long ProductId { get; set; }
[Newtonsoft.Json.JsonProperty("quantity")]
public long Quantity { get; set; }
}
[ApiController]
[Route("api/[controller]")]
public class OrdersController : ControllerBase
{
[HttpPost]
public IActionResult Create([FromBody] CreateOrderRequest request)
{
if (request == null || request.Items == null || !request.Items.Any())
{
return BadRequest("Items cannot be empty");
}
// ビジネスロジック:注文を保存
// var order = OrderService.Create(request);
return Ok(new { order_id = 12345, status = "created" });
}
}
/*
* 対応する.csproj依存関係:
* <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="7.0.0" />
* <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
*/.NET 5+/.NET 7+推奨の使用法:System.Text.Json組み込み拡張メソッド + record型を使用、[JsonPropertyName]アノテーションと組み合わせ。
using System.Net.Http.Json;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
// 本ツールはデフォルトでPOCO classを生成;以下のように手動でrecord型(イミュータブルデータキャリア)に変更:
public record User
{
[JsonPropertyName("id")]
public long Id { get; init; }
[JsonPropertyName("name")]
public string Name { get; init; }
[JsonPropertyName("email")]
public string Email { get; init; }
[JsonPropertyName("is_active")]
public bool? IsActive { get; init; }
}
public class ApiClient
{
private static readonly HttpClient _http = new HttpClient();
public static async Task<User> GetUserAsync(int userId)
{
// System.Text.Json:GetFromJsonAsyncがHTTP + デシリアライズを1行で完了
var user = await _http.GetFromJsonAsync<User>(
$"https://api.example.com/users/{userId}");
System.Console.WriteLine($"User: {user.Name} ({user.Email})");
return user;
}
}
/*
* 対応する.csproj依存関係(System.Text.Jsonは組み込み、追加インストール不要):
* <TargetFramework>net7.0</TargetFramework>
*
* プロジェクトが.NET 7+で[JsonProperty]のNewtonsoft記法と互換性を持たせたい場合は、
* Program.csに以下を追加できます:
* builder.Services.AddControllers()
* .AddNewtonsoftJson(options =>
* {
* options.SerializerSettings.ContractResolver =
* new Newtonsoft.Json.Serialization.DefaultContractResolver();
* });
*/.csprojに<Nullable>enable</Nullable>を追加すると、本ツールが生成するstring? / List<User>?などのnull許容型が自動的にコンパイル時nullチェックを取得し、NullReferenceException実行時クラッシュを回避できます。
本ツールはJSONフィールドを自動的にPascalCaseに変換し(例: user_name → UserName)、同時に[JsonProperty]アノテーションに元のkeyを保持します。これによりコードは.NET公式命名規則に準拠し、デシリアライズはJSONの元のkeyで動作し続けます。
ネストレベルが4層を超える場合は、ルートオブジェクトを複数の独立したPOCOに分割し、それぞれ異なるビジネス領域(例: UserDto / OrderDto / PaymentDto)を担当させることを推奨します。1つの巨大なクラスにすべてのフィールドを含めることを避け、保守性を向上させます。
本ツールで生成したPOCOをEF Core EntityとAPI DTOの両方として使用しないでください。推奨:①APIレイヤーはDTOを使用(JSONから生成);②EF CoreレイヤーはEntityを使用([Key]/[Required]などのデータアノテーションを手動で追加);③AutoMapper/MapsterでDTO ↔ Entityマッピングを行う。データベース構造をフロントエンドに直接露出することを避けます。
プロジェクトでSystem.Text.Jsonを使用している場合は、IDEのグローバル置換で生成された[JsonProperty("xxx")]を[JsonPropertyName("xxx")]に変更することを推奨します。または元の[JsonProperty]を維持 + Microsoft.AspNetCore.Mvc.NewtonsoftJsonパッケージをインストールしてAddNewtonsoftJson()を呼び出し、Newtonsoft構文と互換性を持たせることもできます。
本ツールのすべての計算はブラウザローカルで完了しますが、企業内でさらに一層の防御を推奨します:①本番データベース接続文字列/APIマスターキーを含むJSONをいかなるオンラインツールにもコピーしない;②内部POCO生成はNSwagまたはVisual StudioのJSONをクラスとして貼り付けを使用して完全オフラインで生成することを推奨;③マスキング後のサンプルJSONに対してのみオンラインツールを使用する。
1MBを超えるJSONはブラウザでのレンダリングが遅くなります。推奨:①複数の独立したPOCOクラス(例: User.cs / Address.cs / Order.cs)に分割してビジネスモジュール別に分類;②超大きなJSON Schema(100+フィールド)はNSwagまたはVisual Studio内蔵機能で直接生成;③本ツールは中小型APIレスポンス(< 100フィールド)の処理にのみ使用する。
変更する必要のないDTO/レスポンスモデルについては、生成されたclassをC# 9+のrecordに変更し、{ get; set; }を{ get; init; }に変更することを推奨します。これにより:①コンパイル時にデータが変更されないことを保証;②値等価性比較(Equals/GetHashCode)を自動的に取得;③with式と組み合わせてオブジェクトコピーを簡素化できます。
左側の入力ボックスにJSONコンテンツを貼り付けると、ツールは400ms以内にquicktype-coreを介して自動的にC#クラスを生成し、右側に完全なコードを表示します。「アップロード」ボタンをクリックして.json / .txtファイルを選択するか、「サンプル」をクリックして内蔵データを読み込むこともできます。生成後、「コピー」ボタンをクリックして単一クラスをクリップボードにコピーするか、.csファイルとしてダウンロードできます。
含まれます。ツールはデフォルトでNewtonsoft.Json互換モードを使用し、各フィールドに[JsonProperty("元のkey")]属性を自動的に追加します。これにより、フィールド名がPascalCaseに変換されても、デシリアライズ時に元のJSONキーで正しくマッピングされます。System.Text.Jsonを使用している場合は、生成後に[JsonProperty]を[JsonPropertyName]に変更するか(セマンティクスは同じ)、System.Text.Jsonのデフォルト命名ポリシーを直接使用できます([JsonPropertyName]はSystem.Text.JsonでもカスタムJsonNamingPolicyで処理できます)。
デフォルトではシリアライズ可能なPOCOクラス({ get; set; }プロパティを含む)を生成します。プロジェクトでC# 9+のrecord型(イミュータブルデータキャリア、DTO/イミュータブルモデルに適している)を使用している場合は、生成後に手動でclassをrecordに変更し、{ get; set; }をinit-onlyプロパティ(public string Name { get; init; })に変更できます。record型はASP.NET Core 7+のMinimal APIとEntity Framework Coreで広く使用されています。
すべての有効なJSON構造をサポートしています:基本型(null、boolean、number、string)、配列(1次元または多次元)、ネストされたオブジェクト(任意の深さ)。ルート入力はJSONオブジェクトまたはJSON配列のいずれでもかまいません。JSONオブジェクトはpublic class Rootを生成し、JSON配列はpublic class Root : List<Item>を生成します。JavaScript固有の値(関数、Symbol、undefined、Dateオブジェクトなど)はサポートしていません。
文字列 → string、整数 → long、浮動小数点数 → double、ブール値 → bool、配列 → List<T>、ネストされたオブジェクト → 独立したclass、null値フィールド → Nullable<T>(例: long? / bool? / string?)。詳細なマッピングルールはページ下部の「JSON型からC#型へのマッピング早見表」を参照してください。
はい。ツールはJSONで明示的にnullまたは欠落しているフィールドを検出し、自動的にNullable<T>形式(例: long? Id { get; set; })として生成します。これはC# 8+で導入されたNullable Reference Types(NRT)機能と一致しており、コンパイラが静的解析時にnull参照リスクを発見するのに役立ちます。注意:NRTを有効にしている場合、参照型はデフォルトで非nullであり、null許容を表すには明示的にstring?と記述する必要があります。
はい。JSON配列は統一的にC#のList<T>に変換され、要素型は配列の最初の要素から自動推論されます。文字列配列 → List<string>、整数配列 → List<long>、オブジェクト配列 → List<Item>。空配列[]は要素型を推論できないため、デフォルトでList<object>を生成します。生成後、手動で具体的な型(例: List<MyClass>)に変更することを推奨します。T[]配列構文が好みの場合は、生成後にIDEの検索と置換で一括置換できます。
ツールは各ネストされたオブジェクトに対して独立したC#クラスを生成します。命名規則はフィールド名の先頭大文字です(例: address → Address)。ルートオブジェクトにitems配列が含まれ、要素がオブジェクトの場合は、public class Itemクラスを生成し、public List<Item> Items { get; set; }で参照します。同じ構造のオブジェクトは同じ型を再利用し、重複定義を回避します。
はい。quicktype-coreはデフォルトでJSONソース名(例: Root)をルートクラス名として使用します。生成後に手動でクラス名、namespace、すべての参照箇所を変更できます。ダウンロードする.csファイル名も保存時に必要に応じて名前変更できます(例: User.cs、Order.csに変更)。
直接使用できます。生成されるファイルは標準C#構文で、using System.Collections.Generic;参照を含みます。.csファイルを.NETプロジェクトのルートディレクトリまたはサブディレクトリに配置すると、.csprojに追加の依存関係を追加する必要はありません(System.Text.Jsonは.NETに組み込まれています;Newtonsoft.JsonはNuGet経由でMicrosoft.AspNetCore.Mvc.NewtonsoftJsonまたはNewtonsoft.Jsonパッケージをインストールする必要があります)。その後、JsonConvert.DeserializeObject<T>(jsonString)またはJsonSerializer.Deserialize<T>(jsonString)でデシリアライズできます。
完全にブラウザローカルで実行されます。JSON解析、C#コード生成、ファイルダウンロードはすべてJavaScript + WebAssemblyでブラウザ内で完了します。入力されたJSONデータと生成されたC#コードはいかなるサーバーにもアップロードされず、クラウドに記録またはキャッシュされることもありません。APIキー、トークン、未公開ビジネスフィールドを含む機密JSONも安心して使用でき、ページを閉じると消去されます。
必要ありません。ツールは完全に無料で、登録、ログイン、認可は不要です。ページを開くとすぐに使用でき、すべての機能がブラウザローカルで利用可能です。
ツールはJSONの正当性を自動的に検出し、エラー時には右側に赤いエラーメッセージを表示し、「JSON修正」ボタンを提供します。クリックすると一般的なエラーを自動修正できます:末尾の余分なカンマ、単一引用符から二重引用符への置換、引用符のないkeyへの引用符補完、コメントの削除など。修正成功後はC#コード生成を続行します。
両方とも.NETエコシステムで最も主流なJSONライブラリです。Newtonsoft.Json(Json.NETとも呼ばれる)は歴史が最も古く、エコシステムが最も豊富なライブラリで、ほぼすべての.NETプロジェクトと互換性があります;System.Text.Jsonは.NET Core 3.0+に組み込まれた高性能ライブラリで、起動が速く、メモリ使用量が少なく、AOTフレンドリーです。ASP.NET Core 3.0+はデフォルトでSystem.Text.Jsonを使用します;古い.NET Frameworkプロジェクトと多くのサードパーティライブラリはデフォルトでNewtonsoft.Jsonに依存します。本ツールはデフォルトで[JsonProperty]を生成して両方と互換性を持たせています(System.Text.Jsonは.NET 7+でNewtonsoft互換パッケージMicrosoft.AspNetCore.Mvc.NewtonsoftJsonもサポートしています)。
3つともJSONをターゲット言語の型定義に変換しますが、出力形式が異なります:JSONからC#は[JsonProperty]アノテーション付きのPOCOクラスを生成し、Newtonsoft.JsonまたはSystem.Text.Jsonと組み合わせて直接デシリアライズ可能;JSONからJavaはLombok/Gson/Jacksonアノテーション付きのPOJOを生成;JSONからRustはSerde derive付きのstructを生成します。3つが重視するエコシステムは異なり、選択はあなたの技術スタックに依存します。
System.Text.JsonはデフォルトでstringとDateTimeの自動変換をサポートしておらず、JsonExceptionをスローします。2つの解決策:①フィールドに[JsonConverter(typeof(DateTimeConverter))]カスタムコンバーターを追加;②Program.csでグローバルJsonSerializerOptionsを設定:options.PropertyNameCaseInsensitive = true;し、カスタムJsonConverterでDateTimeを処理。Newtonsoft.JsonはデフォルトでDateTimeデシリアライズをサポートしていますが、特殊な形式(Unixタイムスタンプなど)の場合はカスタムconverterが必要です。
ツールがデフォルトでnamespaceを生成しないのは、コードスニペットの最大の互換性を維持し、ユーザーが任意のプロジェクトにコピーして使用しやすくするためです。namespaceが必要な場合は、生成後のコードの先頭に手動でnamespace YourApp.Models;を追加し、クラスを対応する.csファイルに配置できます。.NETプロジェクトでは機能モジュールごとにnamespaceを整理することを推奨します(例: Models / Dtos / ViewModels / Entities)。
Visual Studio 2019+には「形式を選択して貼り付け → JSONをクラスとして貼り付け」機能が内蔵されています(編集メニュー → 形式を選択して貼り付け)、JSONを直接C#クラスに変換できます。本ツールで生成されるコードはこの機能と互換性があります:ツールで生成したC#コードをクリップボードにコピーした後、任意の.csファイルに貼り付けて使用できます。VS内蔵機能が好みの場合は、本ツールを開かずに直接編集 → 形式を選択して貼り付け → JSONをクラスとして貼り付けを使用できます。
左側の入力ボックスが空であるか、空白文字のみが含まれています。有効なJSONコンテンツが貼り付けられていることを確認するか、アップロードボタンをクリックして.json/.txtファイルを選択してください。サンプルボタンをクリックして内蔵サンプルを読み込むこともできます。
一般的な原因:末尾に余分なカンマがある(例: {"a":1,})、二重引用符の代わりに単一引用符を使用している、keyが二重引用符で囲まれていない、JavaScriptコメントが含まれている。「JSON修正」ボタンをクリックすると一部のエラーを自動修正できます;それでも失敗する場合は、まずJSONフォーマッターツールで検証してください。
ツールはJSONサンプルに基づいて型を推論するため、例えばすべての整数はlong、すべての文字列はstringになります。int/decimal/Guid/DateTimeなどのより正確な型が必要な場合は、生成後に手動でフィールド型を変更してください。System.Text.JsonはデフォルトでDateTimeをサポートしていないことに注意、[JsonConverter]でカスタマイズする必要があります。
ツールはデフォルトでC# 8+のNullable Reference Types形式で生成します(例: string? / List<User>?)。プロジェクトが古いバージョンの.NET Framework/NRTが有効でない場合、すべての参照型はデフォルトでnull許容であり、string?の?は直接削除できます(または.csprojで<Nullable>enable</Nullable>を有効にできます)。
.csprojに以下のPackageReferenceを追加してください: <ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> </ItemGroup> 次にdotnet restoreを実行すると、NuGetが自動的にダウンロードします。System.Text.Jsonを使用する場合はインストール不要です(.NETに組み込まれています)。
ツールはJSONフィールド名を自動的にPascalCaseに変換し(例: user_name → UserName)、同時に[JsonProperty]アノテーションに元のkeyを保持します。Newtonsoft.Jsonはデシリアライズ時に[JsonProperty]に従ってマッピングするため、手動で処理する必要はありません。System.Text.Jsonのデフォルト命名ポリシーを使用する場合は、[JsonProperty]を[JsonPropertyName]に変更するか、Program.csでCamelCase命名ポリシーを設定する必要があります。
考えられる原因:①.csprojにNewtonsoft.Json/System.Text.Json依存関係が追加されていない;②クラスが不適切なディレクトリに配置されている(.NETプロジェクトのルートディレクトリまたはサブディレクトリに配置し、対応するnamespaceにする必要があります);③クラス名がプロジェクト内の他の型と競合している。解決方法:依存関係を追加、ディレクトリとnamespaceを調整、競合するクラスの名前を変更。
ASP.NET Core 3.0+はデフォルトでSystem.Text.Jsonを使用しますが、ツールが生成する[JsonProperty]はNewtonsoft.Json構文です。2つの解決策:①.csprojにMicrosoft.AspNetCore.Mvc.NewtonsoftJsonパッケージを追加し、Program.csでAddNewtonsoftJson()を呼び出す;②生成された[JsonProperty("xxx")]をすべて[JsonPropertyName("xxx")](System.Text.Json構文)に変更する。
通常、配列が空[]の場合にデフォルトでList<object>と推論されます。元のJSONに少なくとも1つのサンプル要素(例: [1,2,3])を追加すると、ツールは最初の要素に基づいて型を推論します;または生成後に手動でList<object>をList<long>/List<int>に変更してください。
JSONを複数の独立したモジュールに分割してそれぞれ変換するか、モデリングが必要な部分のみを抽出することを推奨します。ブラウザが多数のネストされたクラスをレンダリングする際に多くのメモリを消費するため、5MBを超えるJSONはNSwag/Visual Studio内蔵の「JSONをクラスとして貼り付け」機能の使用を推奨します。
ツールはJSON値の型に基づいて対応するC#/.NET型を自動的に推論します:
| JSON値の例 | 生成されるC#型 | Nullable形式 | 説明 |
|---|---|---|---|
null | コンテキストに基づいて推論 | T? | null値フィールドは自動的にNullable<T>として推論されます(例: long? / bool? / string?) |
true / false | bool | bool? | JSONブール値は直接C# boolにマッピング |
42 | long | long? | JSON整数はデフォルトでlong(64ビット整数、大きな数と互換)にマッピング |
3.14 | double | double? | JSON浮動小数点数はデフォルトでdouble(倍精度浮動小数点数)にマッピング |
"hello" | string | string? | JSON文字列はC# stringにマッピング |
["a","b"] | List<string> | List<string>? | 文字列配列はList<string>にマッピング |
[1,2,3] | List<long> | List<long>? | 整数配列はList<long>にマッピング |
[{...},{...}] | List<Item> | List<Item>? | オブジェクト配列は最初の要素から対応するclassを生成し、Listでラップ |
[] | List<object> | List<object>? | 空配列は要素型を推論できないためobjectでフォールバック、生成後に具体的な型に変更することを推奨 |
{...} ネストされたオブジェクト | 独立したclass | ClassName? | ネストされたオブジェクトは独立したclassを生成、フィールド名の先頭大文字で命名(address → Address) |
.NETエコシステムの2大主流JSONライブラリのフィールドマッピング属性対比。本ツールはデフォルトでNewtonsoft互換の[JsonProperty]を生成します:
| 比較項目 | Newtonsoft.Json | System.Text.Json |
|---|---|---|
フィールドマッピング属性 | [JsonProperty("user_name")] | [JsonPropertyName("user_name")] |
デフォルト命名ポリシー | PascalCaseフィールド名を維持(snake_case互換には[JsonProperty]が必要) | 元のフィールド名を維持(JSONキーでマッチング、CamelCaseがデフォルト) |
カスタム命名 | [JsonProperty]でフィールドごとに指定 | [JsonPropertyName] + JsonNamingPolicyグローバル設定 |
null値処理 | NullValueHandling.Ignore / Include | JsonIgnoreCondition.WhenWritingNull |
デフォルト.NETバージョン | .NET Framework / .NET Core / .NET 5+ | .NET Core 3.0+ / .NET 5+ |
インストール方法 | NuGet: Newtonsoft.Json | 組み込み(インストール不要) |
パフォーマンス | 中 | 高(起動が速く、メモリ使用量が少ない) |
AOTサポート | source generatorが必要 | ネイティブサポート |
適用シナリオ | 古い.NETプロジェクト、サードパーティライブラリ依存、エコシステムが豊富 | ASP.NET Core 3.0+、高性能シナリオ、.NET MAUI / Blazor |
本JSONからC#ツールのすべての操作は完全にあなたのブラウザローカルで完了します:JSON解析、C#コード生成、ファイルダウンロードはすべてブラウザのJavaScript + WebAssembly(quicktype-core)を介してクライアント側で実行され、ネットワークを介していかなるサーバーにもJSONコンテンツ、アップロードされたファイル、または生成されたコードを送信しません。ファイルアップロードはブラウザのネイティブFileReader APIを使用して直接メモリに読み込み、いかなる中間サービスも経由しません。Cookieトラッキングは使用せず、ユーザー入力データや使用状況データを一切収集しません。ページを閉じるかリフレッシュすると、すべての入力と出力コンテンツは自動的にメモリから消去されます。APIキー、トークン、機密ビジネスデータを含むJSONの処理に適しています。