Maison > développement back-end > C++ > Comment désérialiser JSON délimité par des lignes en C# à l'aide de JSON.NET ?

Comment désérialiser JSON délimité par des lignes en C# à l'aide de JSON.NET ?

Susan Sarandon
Libérer: 2025-01-22 16:52:10
original
589 Les gens l'ont consulté

How to Deserialize Line-Delimited JSON in C# using JSON.NET?

Sérialisation et désérialisation des données JSON délimitées par des nouvelles lignes en C#

En C#, vous pouvez exploiter la bibliothèque JSON.NET pour traiter les données JSON délimitées par des nouvelles lignes. Ce format de données JSON est indispensable pour interagir avec des services comme Google BigQuery.

Processus de sérialisation et de désérialisation

Vous pouvez utiliser JsonTextReader pour analyser les données JSON délimitées par des nouvelles lignes. Les étapes spécifiques sont les suivantes :

  1. Créez une classe POCO (telle que Foo ou Person) pour représenter la structure de données JSON.
  2. Initialisez l'objet SupportMultipleContent à l'aide du drapeau true défini sur JsonTextReader. Ceci est essentiel pour gérer plusieurs objets JSON dans un seul flux.
  3. Désérialisez chaque objet JSON à l'aide de JsonSerializer.

Si vous devez stocker les résultats désérialisés sous forme de liste, ajoutez chaque élément désérialisé à la liste dans une boucle.

Exemple 1 : Données JSON simples

Pour les données JSON suivantes :

<code>{"some":"thing1"}
{"some":"thing2"}
{"some":"thing3"}</code>
Copier après la connexion

Le code suivant illustre le processus de désérialisation :

<code class="language-csharp">var json = "{\"some\":\"thing1\"}\r\n{\"some\":\"thing2\"}\r\n{\"some\":\"thing3\"}";
var jsonReader = new JsonTextReader(new StringReader(json))
{
    SupportMultipleContent = true
};

var jsonSerializer = new JsonSerializer();
var fooList = new List<Foo>();

while (jsonReader.Read())
{
    fooList.Add(jsonSerializer.Deserialize<Foo>(jsonReader));
}</code>
Copier après la connexion

Exemple 2 : Données JSON complexes

Pour des données JSON plus complexes :

<code>{"kind": "person", "fullName": "John Doe", "age": 22, "gender": "Male", "citiesLived": [{ "place": "Seattle", "numberOfYears": 5}, {"place": "Stockholm", "numberOfYears": 6}]}
{"kind": "person", "fullName": "Jane Austen", "age": 24, "gender": "Female", "citiesLived": [{"place": "Los Angeles", "numberOfYears": 2}, {"place": "Tokyo", "numberOfYears": 2}]}</code>
Copier après la connexion

Créez une Person classe POCO et désérialisez en utilisant la même méthode que l'exemple 1.

Il est important de noter que cette technologie prend également en charge les entrées JSON délimitées par des virgules utilisant Json.Net 10.0.4 et versions ultérieures.

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!

source:php.cn
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