ホームページ > バックエンド開発 > C++ > .NET で大規模な複数配列の JSON ファイルを効率的に解析するにはどうすればよいですか?

.NET で大規模な複数配列の JSON ファイルを効率的に解析するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-05 21:23:43
オリジナル
998 人が閲覧しました

How Can I Efficiently Parse Large, Multi-Array JSON Files in .NET?

.NET での大きな複数配列の JSON ファイルの解析

大きな JSON ファイルの解析は、特に JSON 構造が標準ではない場合、.NET で困難になる可能性があります。 JsonConvert.Deserialize メソッドを使用するときに発生する一般的な問題の 1 つは、大きなファイルに対して例外がスローされる可能性があることです。

この問題は通常、JSON ファイルに区切り文字のない配列とその後に続く別の配列が含まれている場合に発生します。この形式は JSON では無効であるため、JsonConvert.Deserialize が失敗します。

この問題を解決するために、Json.NET は、JSON コンテンツのより柔軟な解析を可能にする JsonTextReader クラスを提供します。 JsonTextReader で SupportMultipleContent フラグを true に設定すると、単一の JSON ファイルから複数の配列を個別のオブジェクトとして解析できます。

この手法を示す更新されたコード サンプルは次のとおりです。

using (WebClient client = new WebClient())
using (Stream stream = client.OpenRead(stringUrl))
using (StreamReader streamReader = new StreamReader(stream))
using (JsonTextReader reader = new JsonTextReader(streamReader))
{
    reader.SupportMultipleContent = true;

    var serializer = new JsonSerializer();
    while (reader.Read())
    {
        if (reader.TokenType == JsonToken.StartObject)
        {
            Contact c = serializer.Deserialize<Contact>(reader);
            Console.WriteLine(c.FirstName + " " + c.LastName);
        }
    }
}
ログイン後にコピー

このアプローチこれにより、配列の数や各配列内の項目に関係なく、メモリ効率の高い方法で非標準の JSON ファイルを解析できます。質問で提供されているサンプル JSON は、この手法を使用して正常に処理できます。

完全なデモについては、次のリンクを参照してください: https://dotnetfiddle.net/2TQa8p

以上が.NET で大規模な複数配列の JSON ファイルを効率的に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート