Maison >développement back-end >C++ >Comment sérialiser et désérialiser du JSON délimité par des lignes en 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
:
<code class="language-csharp">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); }</code>
Cela générera une chaîne avec chaque objet Person sur une ligne distincte :
<code class="language-json">{"personId": 1, "name": "John Smith", ...} {"personId": 2, "name": "Jane Doe", ...}</code>
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
:
<code class="language-csharp">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); } }</code>
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!