Utiliser JSON.NET pour traiter du JSON délimité par des lignes (LDJSON) en C#
Dans certaines applications, telles que Google BigQuery, le format JSON délimité par des lignes (LDJSON) est requis. Ce format sépare chaque objet JSON par un caractère de nouvelle ligne, permettant une importation efficace des données.
Comment sérialiser et désérialiser LDJSON
La populaire bibliothèque C# JSON JSON.NET fournit une solution au problème LDJSON. Vous pouvez analyser les données LDJSON manuellement en utilisant JsonTextReader et en définissant l'indicateur SupportMultipleContent sur true.
Exemple de sérialisation
Pour les listes d'objets, vous pouvez sérialiser chaque objet individuellement et les concaténer en une seule chaîne LDJSON.
Exemple de désérialisation
Pour désérialiser les données LDJSON, créez un lecteur à l'aide de JsonTextReader et parcourez ces objets, en désérialisant chaque objet vers le type d'objet correspondant.
Exemple de code (pseudocode, doit être ajusté en fonction du type d'objet réel) :
<code class="language-csharp">while (jsonReader.Read()) { Foo foo = jsonSerializer.Deserialize<Foo>(jsonReader); jsonList.Add(foo); }</code>
Si le résultat souhaité est une liste d'objets, vous pouvez ajouter chaque objet désérialisé à la liste dans une boucle.
Prise en charge du JSON séparé par des virgules
Avec Json.Net 10.0.4 et versions ultérieures, le code fourni prend également en charge les entrées JSON séparées par des virgules. Cela rend le travail avec le format de données JSON plus flexible.
Résumé
Cette méthode fournit un mécanisme simple pour sérialiser et désérialiser les données LDJSON à l'aide de JSON.NET en C#. En définissant l'indicateur SupportMultipleContent, vous pouvez gérer efficacement plusieurs objets JSON dans un seul flux.
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!