Kann JavascriptSerializer in .NET eine Liste in JSON serialisieren?
Angenommen, Ihr Objektmodell enthält MyObjectInJson
, dessen Eigenschaft ObjectInJson
die serialisierte Version der verschachtelten Liste speichert. Derzeit serialisieren Sie die Liste manuell wie folgt:
<code class="language-csharp">StringBuilder TheListBuilder = new StringBuilder(); TheListBuilder.Append("["); int TheCounter = 0; foreach (MyObjectInJson TheObject in TheList) { TheCounter++; TheListBuilder.Append(TheObject.ObjectInJson); if (TheCounter != TheList.Count()) { TheListBuilder.Append(","); } } TheListBuilder.Append("]"); return TheListBuilder.ToString();</code>
JavascriptSerializer
Ist es möglich, das gleiche Ergebnis zu erzielen?
Alternativen zu JavascriptSerializer
Für .NET 6.0 und höher wird empfohlen, den integrierten System.Text.Json
Parser zu verwenden. Es serialisiert Listen effizient und ohne Reflexion, etwa so:
<code class="language-csharp">using System.Text.Json; using System.Text.Json.Serialization; var aList = new List<myobjectinjson> { new(1, "1"), new(2, "2") }; var json = JsonSerializer.Serialize(aList, Context.Default.ListMyObjectInJson); Console.WriteLine(json); return; public record MyObjectInJson ( long ObjectId, string ObjectInJson ); [JsonSerializable(typeof(List<myobjectinjson>))] internal partial class Context : JsonSerializerContext { }</code>
Für frühere .NET-Versionen (z. B. Core 2.2 und früher) ist Newtonsoft JSON.Net eine praktikable Alternative:
<code class="language-csharp">using Newtonsoft.Json; var json = JsonConvert.SerializeObject(aList);</code>
Erwägen Sie bei Bedarf die Installation dieses Pakets:
<code>PM> Install-Package Newtonsoft.Json</code>
Zur leichteren Bezugnahme wird die ursprüngliche Methode mit JavaScriptSerializer
bereitgestellt:
<code class="language-csharp">// 需要引用 System.Web.Extensions using System.Web.Script.Serialization; var jsonSerialiser = new JavaScriptSerializer(); var json = jsonSerialiser.Serialize(aList);</code>
Das obige ist der detaillierte Inhalt vonKann JavascriptSerializer Listen in .NET in JSON serialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!