Heim >Backend-Entwicklung >C++ >Wie serialisiere und deserialisiere ich zeilengetrennten JSON in C#?
Serialisierung und Deserialisierung von zeilengetrenntem JSON in C#
Bei der Verwendung von JSON.NET und C# 5 kann es erforderlich sein, Objekte gemäß den Spezifikationen von Google BigQuery in zeilengetrenntes JSON zu serialisieren und zu deserialisieren. Dieses Format verwendet Zeilenumbrüche, um jedes Objekt zu trennen.
Serialisierung
Um eine Liste von Objekten in zeilengetrenntes JSON zu serialisieren, können Sie JsonTextWriter
verwenden:
<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>
Dadurch wird eine Zeichenfolge mit jedem Personenobjekt in einer separaten Zeile generiert:
<code class="language-json">{"personId": 1, "name": "John Smith", ...} {"personId": 2, "name": "Jane Doe", ...}</code>
Deserialisierung
Um zeilengetrennten JSON in eine Liste von Objekten zu deserialisieren, können Sie eine Kombination aus JsonTextReader
und JsonSerializer
verwenden:
<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>
Dadurch wird die Personenliste mit dem deserialisierten Personenobjekt gefüllt.
Verbesserungshinweise: Im Codebeispiel wurde person
zu Person
korrigiert, um der C#-Namenskonvention zu entsprechen. Der Rest des Textes behält die ursprüngliche Bedeutung bei, mit nur geringfügigen Anpassungen an den Sätzen, um den Ausdruck flüssiger und natürlicher zu gestalten.
Das obige ist der detaillierte Inhalt vonWie serialisiere und deserialisiere ich zeilengetrennten JSON in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!