Maison >développement back-end >C++ >Comment puis-je analyser un flux d'objets JSON concaténés dans une collection IEnumerable à l'aide de JSON.NET ?

Comment puis-je analyser un flux d'objets JSON concaténés dans une collection IEnumerable à l'aide de JSON.NET ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-09 21:44:44487parcourir

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

Analyser efficacement les objets JSON concaténés à l'aide de JSON.NET

JSON.NET propose des outils robustes pour gérer les données JSON. Ce guide se concentre sur l'analyse d'un flux d'objets JSON concaténés dans une IEnumerable collection.

La stratégie de base consiste à utiliser un JsonSerializer avec CheckAdditionalContent défini sur false, permettant l'analyse de plusieurs objets. Le flux est enveloppé dans un StreamReader, alimentant un JsonTextReader pour l'ingestion de données JSON.

Pour traiter le flux continu, régler SupportMultipleContent sur true est essentiel. Un piège courant est de ne pas faire avancer correctement le lecteur après la désérialisation. La solution réside dans une boucle soigneusement structurée :

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

Cette boucle garantit que chaque objet JSON est lu et désérialisé en un objet TResult, produisant ainsi efficacement chaque objet de la collection IEnumerable.

N'oubliez pas que le IEnumerable doit être itéré pendant que le flux reste ouvert. L'exemple suivant illustre cela :

<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>

Pour des informations détaillées et d'autres exemples, reportez-vous aux ressources suivantes :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn