ホームページ >バックエンド開発 >C++ >JSON.NET を使用して、連結された JSON オブジェクトのストリームを IEnumerable コレクションに解析するにはどうすればよいですか?

JSON.NET を使用して、連結された JSON オブジェクトのストリームを IEnumerable コレクションに解析するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-09 21:44:44487ブラウズ

How Can I Parse a Stream of Concatenated JSON Objects into an IEnumerable Collection Using JSON.NET?

JSON.NET を使用した連結された JSON オブジェクトの効率的な解析

JSON.NET は、JSON データを処理するための強力なツールを提供します。 このガイドは、連結された JSON オブジェクトのストリームを解析して IEnumerable コレクションにすることに重点を置いています。

中心的な戦略には、JsonSerializerCheckAdditionalContent に設定して false を使用することが含まれ、複数のオブジェクトの解析が可能になります。ストリームは StreamReader でラップされ、JSON データ取り込み用の JsonTextReader を供給します。

連続ストリームを処理するには、SupportMultipleContenttrue に設定することが重要です。 よくある落とし穴は、逆シリアル化後にリーダーを適切に進めることができないことです。 解決策は、注意深く構造化されたループの中にあります:

<code class="language-csharp">while (jsonReader.Read())
{
    yield return serializer.Deserialize<TResult>(jsonReader);
}</code>

このループにより、各 JSON オブジェクトが読み取られて TResult オブジェクトに逆シリアル化され、IEnumerable コレクション内の各オブジェクトが効率的に生成されます。

重要なことは、ストリームが開いたままである間、IEnumerable を反復する必要があることを覚えておいてください。 次の例はこれを示しています:

<code class="language-csharp">using (var stream = /* your stream */)
{
    IEnumerable<MyClass> result = ReadJson<MyClass>(stream);

    foreach (var item in result)
    {
        Console.WriteLine(item.MyProperty);
    }
}</code>

詳細情報とその他の例については、次のリソースを参照してください。

以上がJSON.NET を使用して、連結された JSON オブジェクトのストリームを IEnumerable コレクションに解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。