📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の3版が非表示) | |||
| 392行目: | 392行目: | ||
*: https://www.newtonsoft.com/json | *: https://www.newtonsoft.com/json | ||
<br> | <br> | ||
==== Newtonsoft.Json (Json.NET) ライブラリのインストール ==== | ==== Newtonsoft.Json (Json.NET) ライブラリのインストール ==== | ||
RiderまたはVisual StudioからNuGetを使用して、Json.NETライブラリをインストールする。<br> | RiderまたはVisual StudioからNuGetを使用して、Json.NETライブラリをインストールする。<br> | ||
| 442行目: | 443行目: | ||
また、大きなサイズなJSONファイルを扱う場合は、ストリーミング処理を使用することを推奨する。<br> | また、大きなサイズなJSONファイルを扱う場合は、ストリーミング処理を使用することを推奨する。<br> | ||
<br> | <br> | ||
==== LINQ to JSON ==== | |||
LINQ to JSONは、<code>Newtonsoft.Json.Linq</code>名前空間に含まれるクラスとメソッドを使用してJSONデータを操作するための機能である。<br> | |||
<br> | |||
LINQ to JSONを使用することにより、JSONデータの読み込み、操作、書き込みを簡単に行うことができる。<br> | |||
このアプローチは、動的なJSONデータの処理やJSONの構造が事前に完全には分からない場合に有効である。<br> | |||
<br> | |||
また、LINQ to JSONは、C#標準LINQクエリ構文と組み合わせて使用することもできるため、より複雑なJSONデータの操作や検索を行うことができる。<br> | |||
<br> | |||
また、C#標準のLINQクエリ構文を組み合わせて使用する場合、JSONの構造が複雑であっても、特定の条件に合う要素を柔軟に見つけることができる。<br> | |||
例えば、オブジェクトが複数存在する場合やネストされた構造の中に存在する場合でも、全ての該当箇所を編集することができる。<br> | |||
<br> | |||
==== LINQ to JSON : JSONファイルの読み込み ==== | ==== LINQ to JSON : JSONファイルの読み込み ==== | ||
以下の例では、LINQ to JSON、非同期処理、ストリーミング処理を使用して、JSONファイルの読み込んでいる。<br> | 以下の例では、LINQ to JSON、非同期処理、ストリーミング処理を使用して、JSONファイルの読み込んでいる。<br> | ||
| 653行目: | 666行目: | ||
JObject jsonObject = JObject.Parse(jsonContent); | JObject jsonObject = JObject.Parse(jsonContent); | ||
// appName. | // appName.impの配列を変更 (LINQ to JSONを使用する場合) | ||
jsonObject["appName"]["imp"] = new JArray("hoge", "piyo"); | jsonObject["appName"]["imp"] = new JArray("hoge", "piyo"); | ||
// appName.impの配列を変更 (通常のLINQを使用する場合) | |||
//var appNameObjects = jsonObject.Descendants() | |||
// .OfType<JProperty>() | |||
// .Where(p => p.Name == "appName") | |||
// .Select(p => p.Value as JObject); | |||
//foreach (var appName in appNameObjects) | |||
//{ | |||
// if (appName != null && appName["imp"] is JArray impArray) | |||
// { | |||
// // "imp"配列の内容を変更 | |||
// impArray.Replace(new JArray("hoge", "piyo")); | |||
// } | |||
//} | |||
// 変更したJSONを新しいファイルに書き込む | // 変更したJSONを新しいファイルに書き込む | ||