Maison > développement back-end > C++ > Comment analyser un flux d'objets JSON concaténés avec JSON.NET ?

Comment analyser un flux d'objets JSON concaténés avec JSON.NET ?

Linda Hamilton
Libérer: 2025-01-09 21:16:41
original
254 Les gens l'ont consulté

How to Parse a Stream of Concatenated JSON Objects with JSON.NET?

Utilisez JSON.NET pour analyser le flux d'objets JSON

Utilisez JSON.NET pour désérialiser un flux continu d'objets JSON sans délimiteur dans IEnumerable<T> comme suit :

public IEnumerable<TResult> ReadJson<TResult>(Stream stream)
{
    var serializer = new JsonSerializer();
    serializer.CheckAdditionalContent = false;

    using (var reader = new StreamReader(stream))
    using (var jsonReader = new JsonTextReader(reader))
    {
        jsonReader.SupportMultipleContent = true;

        while (jsonReader.Read())
        {
            yield return serializer.Deserialize<TResult>(jsonReader);
        }
    }
}
Copier après la connexion

Utilisation :

L'exemple suivant montre l'itération IEnumerable<T> alors qu'un flux est ouvert :

using (var stream = /* some stream */)
{
    IEnumerable<MyClass> result = ReadJson<MyClass>(stream);

    foreach (var item in result)
    {
        Console.WriteLine(item.MyProperty);
    }
}
Copier après la connexion

Autres notes :

  • Assurez-vous d'itérer IEnumerable<T> pendant que le flux est ouvert.
  • Définissez CheckAdditionalContent sur false pour éviter les exceptions lorsqu'un contenu supplémentaire est rencontré après la désérialisation.

Exemple :

Veuillez vous référer à l'exemple suivant sur le site Web JSON.NET : "Lire plusieurs fragments à l'aide de JsonReader" (https://www.php.cn/link/b0a3f2a0d6f86051e6ab6c49d6d99e75).

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal