C#でのJSONデシリアライズなしでの検索方法


方法1: JObjectを使用したパス指定検索 JObjectクラスを使用してJSONデータを操作し、パス指定による検索を行います。以下は例です。

using Newtonsoft.Json.Linq;
string jsonData = "{...}"; // JSONデータ
JObject jObject = JObject.Parse(jsonData);
JToken result = jObject.SelectToken("path.to.property");
if (result != null)
{
    // 検索結果を利用する処理
}

方法2: LINQ to JSONを使用した条件検索 LINQ to JSONを使用して、条件に合致する要素を検索することもできます。以下は例です。

using Newtonsoft.Json.Linq;
string jsonData = "{...}"; // JSONデータ
JObject jObject = JObject.Parse(jsonData);
JToken result = jObject.Descendants()
    .Where(d => d.Type == JTokenType.Property && ((JProperty)d).Name == "property")
    .Select(p => ((JProperty)p).Value)
    .FirstOrDefault();
if (result != null)
{
    // 検索結果を利用する処理
}

方法3: Regexを使用した正規表現による検索 正規表現を使用して、JSONデータ内の文字列パターンを検索することも可能です。以下は例です。

using System.Text.RegularExpressions;
string jsonData = "{...}"; // JSONデータ
string pattern = @"\"property\"(\s*):(\s*)\""(.*?)\"""; // 検索する正規表現パターン
Match match = Regex.Match(jsonData, pattern);
if (match.Success)
{
    string value = match.Groups[3].Value;
    // 検索結果を利用する処理
}

これらの方法を使用して、JSONデータ内を検索することができます。デシリアライズせずに検索することで、パフォーマンスを向上させることができます。詳細な実装については、上記のコード例を参考にしてください。