

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
json.netとは何か
json.net は .NET 向けの人気ライブラリで JSON の読み書きを簡単にする道具です。Csharp のデータを JSON 文字列へ変換したり 逆に JSON からオブジェクトへ戻したりする作業を楽にします。正式には Newtonsoft.Json という名前で呼ばれることが多く 日常的には json.net と呼ぶことが多いです。開発者は API からデータを送受信する時にこのツールを使うことで コード量を減らし 読みやすさを保てます。
このライブラリの長所は 直感的な使い方と さまざまなオプションがある点です。デフォルトの設定でも多くのケースで使えますが 日付のフォーマットや Null 値の扱い あるいは プロパティ名の変換などを細かく調整することができます。
主な機能
第一に JSON 文字列とオブジェクトの相互変換です。JsonConvert.SerializeObject(obj) でオブジェクトを JSON 文字列に変換し JsonConvert.DeserializeObject<YourType>(json) で文字列を再度オブジェクトに戻します。次に LINQ to JSON と呼ばれる機能で JSON を木構造として扱い 部分的に取り出すことができます。これは複雑な JSON を扱う時に便利です。さらに 日付のフォーマット制御やプロパティ名の変換を行う設定も豊富です。
導入手順として は まず NuGet から Newtonsoft.Json を追加します。NuGet パッケージマネージャーを開き Newtonsoft.Json を検索してインストールします。インストール後は using Newtonsoft.Json; として 名前空間を参照します。そして 具体的なコード例として 下記のような流れを使います。
例JsonConvert.SerializeObject(obj) でオブジェクトを JSON 文字列へ変換します。JsonConvert.DeserializeObject<YourType>(json) で JSON からオブジェクトを作ります
実際の活用のヒント
実務では JSON の受け渡しが日常的に行われます json.net を使うと サーバーとクライアント間のデータ交換が 速く 安定します。エラーの原因は 型の不一致 や 日付のタイムゾーン などです。これらを回避するには 事前にデータの型とフォーマットを決めておき 設定を揃えておくことが大切です。
まとめ
json.net は .NET 環境で JSON を扱うときの強力な味方です 初心者でも 公式ドキュメントやチュートリアルを読み 少しずつ自分のプロジェクトに取り入れていくと 自然と使いこなせるようになります。
json.netの同意語
- Json.NET
- .NET 向けの高機能な JSON シリアライゼーション/デシリアライゼーションライブラリ。原著者は Newtonsoft。オブジェクトと JSON の変換を高性能かつ柔軟に行えるのが特徴です。
- JSON.NET
- Json.NET の表記ゆれ。意味は上と同じ。表記ゆれとして検索対策に有用。
- Newtonsoft.Json
- Json.NET の正式名称および NuGet パッケージ名。Json.NET の実装本体を指す標準的名称です。
- Newtonsoft.Json.dll
- Json.NET の実装を含む DLL ファイル。プロジェクトへ参照として追加して使用します。
- JsonConvert
- Json.NET が提供する主な静的ヘルパークラス。SerializeObject や DeserializeObject などを通じて、簡単に変換ができます。
- JsonSerializer
- Json.NET の中心的なシリアライザクラス。設定を細かく制御して、シリアライズ/デシリアライズの動作をカスタマイズします。
- Newtonsoft
- Json.NET の略称・ブランド名。公式以外の文献で“Newtonsoft”と呼ばれることがあります。
- Json.NET ライブラリ
- Json.NET 全体を指す日本語の一般表現。ライブラリとしての機能セットをまとめて指す言い方です。
json.netの対義語・反対語
- XML
- Extensible Markup Language。JSONとは異なるデータ表現形式。タグで階層を表現し、テキストとして読みやすいが、データ量が増えやすい傾向があります。
- CSV
- Comma-Separated Values。表形式のデータを平坦なテキストで表現する形式。階層や複雑なオブジェクトを直接表現できず、JSONの木構造とは性質が違います。
- YAML
- YAMLは人が読みやすいデータ記述言語。JSONと似たデータ構造を扱えますが、表記に自由度が高くコメントを入れられます。
- TOML
- TOMLは設定ファイル向けのデータ記述言語。読みやすさを重視し、JSONとは異なる表現方法です。
- Protobuf
- Protocol Buffers。二進データ形式で高速・小型化を重視するシリアライズ方式。スキーマが必須で、テキストではなくバイナリでデータを表現します。
- MessagePack
- MessagePack。JSONの二進版で、コンパクトなバイナリ表現。人には読みづらいが通信量を削減します。
- BSON
- Binary JSON。JSONのバイナリ版。MongoDBなどで使われ、テキストではなく二進データとして扱います。
- バイナリ形式
- テキスト以外の二進データでデータを表現する形式全般。人が読みづらいことが多く、機械間通信や保存で効率が良いことが多いです。
json.netの共起語
- Json.NET
- Json.NET は .NET 向けの高機能な JSON 処理ライブラリの別名。シリアライズ/デシリアライズ、LINQ to JSON などをサポートします。
- Newtonsoft.Json
- Json.NET の公式パッケージ名。広く使われる名称です。
- JsonConvert
- Json.NET の静的ヘルパー クラス。SerializeObject や DeserializeObject を使って手軽に変換できます。
- JObject
- JSON オブジェクトを表す LINQ to JSON の型。動的にプロパティを操作できます。
- JArray
- JSON 配列を表す型。要素を順序付きで扱えます。
- JToken
- JSON 要素の基底クラス。JObject/JArray などの共通基盤。
- JProperty
- JSON オブジェクトの個々のプロパティを表す型。
- JsonSerializer
- 実際のシリアライズ処理を担うクラス。Settings を適用して動作を制御します。
- JsonSerializerSettings
- JsonSerializer の動作を細かく設定するオプション集。
- JsonTextReader
- JSON テキストを読み込むリーダー。ストリームや文字列から解析します。
- JsonTextWriter
- JSON テキストを書き出すライター。
- SerializeObject
- オブジェクトを JSON 文字列へ変換する JsonConvert.SerializeObject の別名的表現。
- DeserializeObject
- JSON 文字列を .NET オブジェクトへ変換する JsonConvert.DeserializeObject の別名的表現。
- NuGet
- NET のライブラリを管理・取得するパッケージマネージャ。Json.NET は NuGet から入手するのが一般的です。
- ASP.NET
- Web アプリ開発のフレームワーク。Json.NET は JSON 処理でよく使われます。
- ASP.NET Web API
- 古典的な Web API フレームワーク。Json.NET が標準的な JSON 処理を担当します。
- .NET
- Microsoft が提供するアプリケーション開発プラットフォーム。Json.NET は .NET Framework/ Core/ 5+ で動作します。
- .NET Framework
- .NET の旧式フレームワーク。Json.NET も長い間サポートされてきました。
- .NET Core
- クロスプラットフォーム対応の .NET。Json.NET は .NET Core でも利用可能です。
- Linq to JSON
- Json.NET が提供する、LINQ 風に JSON をクエリ・操作する機能。
- CamelCaseNamingStrategy
- プロパティ名を CamelCase(小文字始まり)に変換する命名戦略。自動変換に使われます。
- DefaultContractResolver
- 契約解決のデフォルト実装。命名戦略などの適用を担います。
- JsonProperty
- クラスのプロパティと JSON のキーを結びつける属性。別名を指定できます。
- JsonConverter
- 独自の変換処理を追加するための拡張ポイントとなる基底クラス。
- StringEnumConverter
- 列挙値を文字列で表現するための変換器。
- TypeNameHandling
- JSON に .NET 型情報を含めるかどうかを制御します。
- NullValueHandling
- null 値をどう処理するかを決めます。省略するかそのまま出力します。
- DateFormatHandling
- 日付のフォーマット形式をカスタマイズします。
- ReferenceLoopHandling
- 参照ループを検出した場合の挙動を設定します。
- ContractResolver
- 契約の解決をカスタマイズする基盤。デフォルトと命名戦略を組み合わせて使用します。
- JTokenType
- JToken の種別を表す列挙。Object/Array/String などの型を表します。
- CultureInfo
- 日付・数値のフォーマットに関わるカルチャ情報。
json.netの関連用語
- Json.NET
- .NET向けの高性能JSON処理ライブラリ。オブジェクトとJSONの相互変換、読み書き、LINQを使った操作などを提供します。
- Newtonsoft.Json
- Json.NETの正式パッケージ名。NuGetで提供される実装ライブラリの名称です。
- JsonConvert
- JsonConvertはオブジェクトとJSONの変換を簡単に行える静的クラス。SerializeObjectやDeserializeObjectなどを提供します。
- JsonSerializer
- JsonSerializerは設定を適用してストリームを通してシリアライズやデシリアライズを行うクラスです。
- JsonSerializerSettings
- JsonSerializerの動作を細かく制御する設定クラス。NullValueHandling、Formatting、TypeNameHandlingなどが含まれます。
- Formatting
- 出力の整形オプション。Indentedで改行とインデント付き、Noneでコンパクトに出力します。
- NullValueHandling
- null値の扱いを制御します。Includeは出力に含め、Ignoreは出力から除外します。
- MissingMemberHandling
- JSONに未知のクラスメンバーがある場合の挙動。Errorで例外、Ignoreで無視します。
- DefaultValueHandling
- デフォルト値の扱いを制御します。Includeは常に出力、Ignoreはデフォルト値を出力から除外します。
- TypeNameHandling
- 型情報の埋め込みを制御します。None/Objects/Arrays/Allのいずれかを設定します。
- PreserveReferencesHandling
- 同一オブジェクトの参照を$ref/$idで保持します。循環参照の再現性を確保します。
- ReferenceLoopHandling
- 循環参照の扱いを指定します。Error/Ignore/Serializeのいずれかです。
- ContractResolver
- シリアライズ時の契約規則を決定します。プロパティ名の変換やメンバーの選択に影響します。
- CamelCasePropertyNamesContractResolver
- プロパティ名をキャメルケースで出力する契約解決です。
- DefaultContractResolver
- デフォルトの契約規則を提供します。
- JsonPropertyAttribute
- 特定のプロパティの出力名や必須性、値の扱いを指定します。
- JsonIgnoreAttribute
- このプロパティをJSON出力から除外します。
- JsonObjectAttribute
- クラス全体のシリアル化挙動を指定します。
- JsonArrayAttribute
- 集合をJSON配列として扱うときの挙動を指定します。
- JsonConverter
- カスタム変換を実装するための基底クラス。属性で適用することも可能です。
- JsonConverterAttribute
- 特定のプロパティや型に対してカスタムコンバーターを適用します。
- StringEnumConverter
- 列挙値を文字列としてシリアライズ/デシリアライズします。
- IsoDateTimeConverter
- DateTimeのフォーマットをISO8601等の文字列として出力するコンバーターです。
- DateFormatString
- DateTimeのフォーマット文字列を指定します。例として yyyy-MM-dd など。
- DateFormatHandling
- 日付のフォーマット方針を設定します。ISO形式とMicrosoft形式を切り替えます。
- DateTimeZoneHandling
- DateTimeのタイムゾーン処理を指定します。Local/UTC/Unspecified など。
- JsonReader
- JSONを読み取る抽象クラス。実装としてJsonTextReaderなどがあります。
- JsonTextReader
- テキストからJSONを読み取る実装クラスです。
- JsonWriter
- JSONを書き出す抽象クラス。
- JsonTextWriter
- テキストへJSONを書き出す実装クラスです。
- JToken
- LINQ to JSONの基底クラス。JSONデータを木構造として扱えます。
- JObject
- JSONオブジェクトを表すJTokenの派生。キーと値のペアで表現します。
- JArray
- JSON配列を表すJTokenの派生。
- JValue
- JSONの基本的な値を保持するクラスです。
- JObject.Parse
- 文字列をJObjectへ解析します。
- JArray.Parse
- 文字列をJArrayへ解析します。
- JToken.Parse
- 任意のJSONトークンを解析します。
- JToken.ToObject
- JTokenを任意の.NETオブジェクトへ変換します。
- JToken.ToString
- JTokenをJSON文字列として出力します。
- SelectToken
- JSONPathクエリで特定の要素を取得します。
- SelectTokens
- 複数の要素をJSONPathで取得します。
- LINQ to JSON
- LINQを用いてJToken系をクエリ・操作します。
- Populate
- JsonSerializer.Populateを使って既存オブジェクトにJSONデータを適用します。
- ToObject
- JTokenやJsonConvertを使って型へ変換します。
- JsonSchema
- JSON Schemaを扱う別パッケージ Newtonsoft.Json.Schema で提供。JSchemaやJSchemaGeneratorなどを使います。
- JSchema
- JSON Schemaを表すクラス。別パッケージで提供され、スキーマを表現します。
- JSchemaGenerator
- JSON Schemaを自動生成するツール。モデルからスキーマを作成します。
json.netのおすすめ参考サイト
- 【初心者向け】C#.NETとは?C#との違いは?徹底解説 - DMM WEBCAMP
- JSONとは | Oracle 日本
- Newtonsoft.Json (Json.NET) の基本的な使い方 | @Subaru



















