Maison > développement back-end > C++ > Comment sérialiser et désérialiser du JSON délimité par des lignes en C# ?

Comment sérialiser et désérialiser du JSON délimité par des lignes en C# ?

Linda Hamilton
Libérer: 2025-01-22 16:36:12
original
953 Les gens l'ont consulté

How to Serialize and Deserialize Line-Delimited JSON in C#?

Sérialisation et désérialisation de JSON délimité par des lignes en C#

Lors de l'utilisation de JSON.NET et C# 5, il peut être nécessaire de sérialiser et de désérialiser les objets en JSON délimité par des lignes conformément aux spécifications de Google BigQuery. Ce format utilise des nouvelles lignes pour séparer chaque objet.

Sérialisation

Pour sérialiser une liste d'objets en JSON délimité par des lignes, vous pouvez utiliser JsonTextWriter :

using System.IO;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

var people = new List<Person> { }; // 注意此处Person首字母大写

using (var writer = new StringWriter())
{
    var settings = new JsonSerializerSettings()
    {
        Formatting = Formatting.None,
        NullValueHandling = NullValueHandling.Ignore
    };

    var jsonSerializer = new JsonSerializer(settings);
    jsonSerializer.Serialize(writer, people);
}
Copier après la connexion

Cela générera une chaîne avec chaque objet Person sur une ligne distincte :

{"personId": 1, "name": "John Smith", ...}
{"personId": 2, "name": "Jane Doe", ...}
Copier après la connexion

Désérialisation

Pour désérialiser le JSON délimité par des lignes dans une liste d'objets, vous pouvez utiliser une combinaison de JsonTextReader et JsonSerializer :

using System.IO;
using Newtonsoft.Json;

using (var reader = new StringReader(json))
using (var jsonReader = new JsonTextReader(reader))
{
    jsonReader.SupportMultipleContent = true;
    var jsonSerializer = new JsonSerializer();

    while (jsonReader.Read())
    {
        var person = jsonSerializer.Deserialize<Person>(jsonReader); // 注意此处Person首字母大写
        people.Add(person);
    }
}
Copier après la connexion

Cela remplira la liste des personnes avec l'objet Person désérialisé.

Notes d'amélioration : Corrigé person en Person dans l'exemple de code pour se conformer à la convention de dénomination C#. Le reste du texte conserve le sens original inchangé, avec seulement des ajustements mineurs aux phrases pour rendre l'expression plus fluide et naturelle.

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